[INFO] cloning repository https://github.com/nyabia/nyatidraw
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nyabia/nyatidraw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnyabia%2Fnyatidraw", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnyabia%2Fnyatidraw'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 857144b83643651240b1de9f1bc8a1d9cdc97ece
[INFO] checking nyabia/nyatidraw against 0cefa27fe3deee26fc98ee44249406358d9f0d26 for pr-164789
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnyabia%2Fnyatidraw" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/nyabia/nyatidraw
[INFO] finished tweaking git repo https://github.com/nyabia/nyatidraw
[INFO] tweaked toml for git repo https://github.com/nyabia/nyatidraw written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nyabia/nyatidraw on toolchain 0cefa27fe3deee26fc98ee44249406358d9f0d26
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0cefa27fe3deee26fc98ee44249406358d9f0d26" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nyabia/nyatidraw 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" "+0cefa27fe3deee26fc98ee44249406358d9f0d26" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zstd-safe v8.0.0
[INFO] [stderr]   Downloaded dioxus v0.7.9
[INFO] [stderr]   Downloaded subsecond-types v0.7.10
[INFO] [stderr]   Downloaded dioxus-devtools v0.7.10
[INFO] [stderr]   Downloaded dioxus-html-internal-macro v0.7.10
[INFO] [stderr]   Downloaded lazy-js-bundle v0.7.10
[INFO] [stderr]   Downloaded dioxus-core-types v0.7.10
[INFO] [stderr]   Downloaded dioxus-cli-config v0.7.10
[INFO] [stderr]   Downloaded const-serialize-macro v0.8.0-alpha.1
[INFO] [stderr]   Downloaded const-serialize-macro v0.7.2
[INFO] [stderr]   Downloaded manganis v0.7.10
[INFO] [stderr]   Downloaded const-serialize v0.7.2
[INFO] [stderr]   Downloaded dioxus-history v0.7.10
[INFO] [stderr]   Downloaded subsecond v0.7.10
[INFO] [stderr]   Downloaded const-serialize v0.8.0-alpha.0
[INFO] [stderr]   Downloaded sledgehammer_bindgen_macro v0.6.5
[INFO] [stderr]   Downloaded dioxus-devtools-types v0.7.10
[INFO] [stderr]   Downloaded dioxus-stores-macro v0.7.10
[INFO] [stderr]   Downloaded zstd v0.14.0
[INFO] [stderr]   Downloaded dioxus-hooks v0.7.10
[INFO] [stderr]   Downloaded memfd v0.6.5
[INFO] [stderr]   Downloaded manganis-macro v0.7.10
[INFO] [stderr]   Downloaded manganis-core v0.7.10
[INFO] [stderr]   Downloaded generational-box v0.7.10
[INFO] [stderr]   Downloaded dioxus-document v0.7.10
[INFO] [stderr]   Downloaded dioxus-rsx v0.7.10
[INFO] [stderr]   Downloaded dioxus-stores v0.7.10
[INFO] [stderr]   Downloaded dioxus-web v0.7.10
[INFO] [stderr]   Downloaded dioxus-core-macro v0.7.10
[INFO] [stderr]   Downloaded xxhash-rust v0.8.18
[INFO] [stderr]   Downloaded dioxus-signals v0.7.10
[INFO] [stderr]   Downloaded dioxus-interpreter-js v0.7.10
[INFO] [stderr]   Downloaded dioxus-html v0.7.10
[INFO] [stderr]   Downloaded dioxus-fullstack v0.7.10
[INFO] [stderr]   Downloaded tungstenite v0.27.0
[INFO] [stderr]   Downloaded dioxus-core v0.7.10
[INFO] [stderr]   Downloaded redb v2.6.3
[INFO] [stderr]   Downloaded redb v4.2.0
[INFO] [stderr]   Downloaded dioxus-fullstack-macro v0.7.10
[INFO] [stderr]   Downloaded dioxus-asset-resolver v0.7.10
[INFO] [stderr]   Downloaded dioxus-fullstack-core v0.7.10
[INFO] [stderr]   Downloaded content_disposition v0.4.0
[INFO] [stderr]   Downloaded uuid v1.26.0
[INFO] [stderr]   Downloaded const-str v0.7.1
[INFO] [stderr]   Downloaded async-tungstenite v0.31.0
[INFO] [stderr]   Downloaded kuchikiki v0.8.8-speedreader
[INFO] [stderr]   Downloaded selectors v0.24.0
[INFO] [stderr]   Downloaded servo_arc v0.2.0
[INFO] [stderr]   Downloaded markup5ever v0.14.1
[INFO] [stderr]   Downloaded cssparser v0.29.6
[INFO] [stderr]   Downloaded libredox v0.1.21
[INFO] [stderr]   Downloaded html5ever v0.29.1
[INFO] [stderr]   Downloaded muda v0.17.2
[INFO] [stderr]   Downloaded tray-icon v0.21.3
[INFO] [stderr]   Downloaded tao v0.34.8
[INFO] [stderr]   Downloaded global-hotkey v0.7.0
[INFO] [stderr]   Downloaded dioxus-config-macro v0.7.10
[INFO] [stderr]   Downloaded dioxus-config-macros v0.7.10
[INFO] [stderr]   Downloaded xml v1.4.0
[INFO] [stderr]   Downloaded velopack v1.2.0
[INFO] [stderr]   Downloaded waitpid-any v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3
[INFO] running `Command { std: "docker" "start" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3", 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" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3" "/opt/rustwide/cargo-home/bin/cargo" "+0cefa27fe3deee26fc98ee44249406358d9f0d26" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3" "/opt/rustwide/cargo-home/bin/cargo" "+0cefa27fe3deee26fc98ee44249406358d9f0d26" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling indexmap v2.14.1
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]    Compiling version-compare v0.2.1
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]     Checking nyatidraw-api v0.1.0 (/opt/rustwide/workdir/crates/api)
[INFO] [stderr]     Checking nyatidraw-input v0.1.0 (/opt/rustwide/workdir/crates/input)
[INFO] [stderr]    Compiling cc v1.4.4
[INFO] [stderr]     Checking constant_time_eq v0.4.2
[INFO] [stderr]     Checking nyatidraw-brush v0.1.0 (/opt/rustwide/workdir/crates/brush)
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking futures-core v0.3.34
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]     Checking nyatidraw-document v0.1.0 (/opt/rustwide/workdir/crates/document)
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking futures-channel v0.3.34
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling zstd-safe v8.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling naga v26.0.0
[INFO] [stderr]     Checking codespan-reporting v0.12.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling wgpu-hal v26.0.6
[INFO] [stderr]     Checking gpu-alloc-types v0.3.1
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking gpu-alloc v0.6.2
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]    Compiling blake3 v1.8.7
[INFO] [stderr]    Compiling zstd-sys v2.1.0+zstd.1.5.7
[INFO] [stderr]     Checking ash v0.38.0+1.3.281
[INFO] [stderr]     Checking ordered-float v5.0.0
[INFO] [stderr]     Checking nyatidraw-diagnostics v0.1.0 (/opt/rustwide/workdir/crates/diagnostics)
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stderr]    Compiling wgpu-core v26.0.1
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]     Checking nyatidraw-tiles v0.1.0 (/opt/rustwide/workdir/crates/tiles)
[INFO] [stderr]     Checking konst_macro_rules v0.2.19
[INFO] [stderr]     Checking nyatidraw-paint-cpu v0.1.0 (/opt/rustwide/workdir/crates/paint-cpu)
[INFO] [stderr]     Checking dioxus-core-types v0.7.10
[INFO] [stderr]     Checking konst v0.2.20
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]     Checking flate2 v1.1.10
[INFO] [stderr]    Compiling wgpu v26.0.1
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling redb v4.2.0
[INFO] [stderr]     Checking const_format v0.2.36
[INFO] [stderr]    Compiling redb v2.6.3
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking nyatidraw-stroke v0.1.0 (/opt/rustwide/workdir/crates/stroke)
[INFO] [stderr]     Checking rustc-hash v2.1.3
[INFO] [stderr]     Checking nyatidraw-history v0.1.0 (/opt/rustwide/workdir/crates/history)
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling x11 v2.21.0
[INFO] [stderr]    Compiling gtk v0.18.2
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling lazy-js-bundle v0.7.10
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling bytemuck_derive v1.12.0
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]     Checking thiserror v2.0.20
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking wgpu-types v26.0.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking futures-executor v0.3.34
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]    Compiling toml_datetime v0.6.3
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling toml_edit v0.20.2
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]     Checking subsecond-types v0.7.10
[INFO] [stderr]     Checking subsecond v0.7.10
[INFO] [stderr]     Checking bytes v1.12.1
[INFO] [stderr]     Checking zerovec v0.11.8
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]     Checking generational-box v0.7.10
[INFO] [stderr]     Checking dioxus-core v0.7.10
[INFO] [stderr]     Checking tinystr v0.8.4
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]     Checking potential_utf v0.1.6
[INFO] [stderr]     Checking zerotrie v0.2.5
[INFO] [stderr]    Compiling toml v0.8.2
[INFO] [stderr]    Compiling proc-macro-crate v2.0.2
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling warnings-macro v0.2.0
[INFO] [stderr]     Checking zstd v0.14.0
[INFO] [stderr]     Checking warnings v0.2.1
[INFO] [stderr]     Checking nyatidraw-project v0.1.0 (/opt/rustwide/workdir/crates/project)
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]     Checking nyatidraw-editor v0.1.0 (/opt/rustwide/workdir/crates/editor)
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]    Compiling gtk3-macros v0.18.2
[INFO] [stderr]    Compiling const-serialize-macro v0.7.2
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]    Compiling javascriptcore-rs-sys v1.1.1
[INFO] [stderr]    Compiling soup3-sys v0.5.0
[INFO] [stderr]     Checking nyatidraw-project-redb v0.1.0 (/opt/rustwide/workdir/crates/project-redb)
[INFO] [stderr]     Checking dioxus-signals v0.7.10
[INFO] [stderr]     Checking keyboard-types v0.7.0
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]    Compiling webkit2gtk-sys v2.0.1
[INFO] [stderr]    Compiling const-serialize-macro v0.8.0-alpha.1
[INFO] [stderr]    Compiling libxdo-sys v0.11.0
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]    Compiling dioxus-rsx v0.7.10
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]    Compiling enumset_derive v0.15.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking http v1.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking crossbeam-channel v0.5.16
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking dioxus-cli-config v0.7.10
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking enumset v1.1.14
[INFO] [stderr]    Compiling dioxus-core-macro v0.7.10
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking dioxus-hooks v0.7.10
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling const-serialize v0.7.2
[INFO] [stderr]    Compiling gdkx11-sys v0.18.2
[INFO] [stderr]     Checking euclid v0.22.14
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling dioxus-html-internal-macro v0.7.10
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling serde_repr v0.1.21
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]     Checking nyatidraw-png-io v0.1.0 (/opt/rustwide/workdir/crates/png-io)
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling cookie v0.18.2
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking uuid v1.26.0
[INFO] [stderr]     Checking bitstream-io v2.6.0
[INFO] [stderr]     Checking cfb v0.7.3
[INFO] [stderr]     Checking dioxus-html v0.7.10
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking libappindicator-sys v0.9.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling const-serialize v0.8.0-alpha.0
[INFO] [stderr]     Checking libxdo v0.6.0
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]    Compiling sledgehammer_bindgen_macro v0.6.5
[INFO] [stderr]     Checking pulp v0.22.3
[INFO] [stderr]    Compiling dlopen2_derive v0.4.3
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling dioxus-document v0.7.10
[INFO] [stderr]    Compiling dioxus-interpreter-js v0.7.10
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking data-encoding v2.11.1
[INFO] [stderr]     Checking gio v0.18.4
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking atk v0.18.2
[INFO] [stderr]     Checking javascriptcore-rs v1.1.2
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling rfd v0.17.2
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling wry v0.53.5 (/opt/rustwide/workdir/third_party/wry)
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v26.0.0
[INFO] [stderr]     Checking ravif v0.11.20
[INFO] [stderr]     Checking exr v1.74.2
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking sledgehammer_bindgen v0.6.0
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking dlopen2 v0.8.2
[INFO] [stderr]    Compiling manganis-core v0.7.10
[INFO] [stderr]     Checking infer v0.19.0
[INFO] [stderr]     Checking gdkwayland-sys v0.18.2
[INFO] [stderr]     Checking dioxus-devtools-types v0.7.10
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling dioxus-desktop v0.7.9 (/opt/rustwide/workdir/third_party/dioxus-desktop)
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]    Compiling manganis-macro v0.7.10
[INFO] [stderr]     Checking dioxus-devtools v0.7.10
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking webbrowser v1.2.4
[INFO] [stderr]     Checking dioxus-history v0.7.10
[INFO] [stderr]    Compiling dioxus-stores-macro v0.7.10
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking manganis v0.7.10
[INFO] [stderr]    Compiling dioxus-config-macro v0.7.10
[INFO] [stderr]     Checking dioxus-config-macros v0.7.10
[INFO] [stderr]     Checking nyatidraw-input-queue v0.1.0 (/opt/rustwide/workdir/crates/input-queue)
[INFO] [stderr]     Checking nyatidraw-input-platform v0.1.0 (/opt/rustwide/workdir/crates/input-platform)
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.127
[INFO] [stderr]     Checking nyatidraw-web-core v0.1.0 (/opt/rustwide/workdir/crates/web-core)
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]     Checking global-hotkey v0.7.0
[INFO] [stderr]     Checking dioxus-asset-resolver v0.7.10
[INFO] [stderr]     Checking dioxus-stores v0.7.10
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]     Checking nyatidraw-project-web v0.1.0 (/opt/rustwide/workdir/crates/project-web)
[INFO] [stderr]     Checking hashlink v0.12.2
[INFO] [stderr]    Compiling wasm-bindgen v0.2.127
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.127
[INFO] [stderr]     Checking nyatidraw-cli v0.1.0 (/opt/rustwide/workdir/apps/cli)
[INFO] [stderr]     Checking nyatidraw-web v0.1.0 (/opt/rustwide/workdir/apps/web)
[INFO] [stderr]     Checking nyatidraw-paint-gpu v0.1.0 (/opt/rustwide/workdir/crates/paint-gpu)
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.127
[INFO] [stderr]     Checking nyatidraw-web-worker v0.1.0 (/opt/rustwide/workdir/apps/web-worker)
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking soup3 v0.5.0
[INFO] [stderr]     Checking gdk v0.18.2
[INFO] [stderr]     Checking rusqlite v0.40.2
[INFO] [stderr]     Checking libappindicator v0.9.0
[INFO] [stderr]     Checking muda v0.17.2
[INFO] [stderr]     Checking webkit2gtk v2.0.1
[INFO] [stderr]     Checking tao v0.34.8
[INFO] [stderr]     Checking tray-icon v0.21.3
[INFO] [stdout] warning: use of deprecated method `webkit2gtk::WebViewExt::run_javascript`: Since 2.40
[INFO] [stdout]   --> third_party/wry/src/webkitgtk/synthetic_mouse_events.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |         webview.run_javascript(
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `webkit2gtk::WebViewExt::run_javascript`: Since 2.40
[INFO] [stdout]   --> third_party/wry/src/webkitgtk/synthetic_mouse_events.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |         webview.run_javascript(
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `webkit2gtk::WebViewExt::run_javascript`: Since 2.40
[INFO] [stdout]   --> third_party/wry/src/webkitgtk/synthetic_mouse_events.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |         webview.run_javascript(
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `webkit2gtk::WebViewExt::run_javascript`: Since 2.40
[INFO] [stdout]   --> third_party/wry/src/webkitgtk/synthetic_mouse_events.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |         webview.run_javascript(
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `webkit2gtk::WebViewExt::run_javascript`: Since 2.40
[INFO] [stdout]    --> third_party/wry/src/webkitgtk/mod.rs:356:21
[INFO] [stdout]     |
[INFO] [stdout] 356 |             webview.run_javascript(&script, cancellable, |_| ());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `webkit2gtk::WebViewExt::run_javascript`: Since 2.40
[INFO] [stdout]    --> third_party/wry/src/webkitgtk/mod.rs:699:20
[INFO] [stdout]     |
[INFO] [stdout] 699 |       self.webview.run_javascript(js, cancellable, |result| {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking dioxus v0.7.9
[INFO] [stderr]     Checking nyatidraw-editor-ui v0.1.0 (/opt/rustwide/workdir/crates/editor-ui)
[INFO] [stderr]     Checking nyatidraw-desktop v0.1.0 (/opt/rustwide/workdir/apps/desktop)
[INFO] [stdout] warning: unused import: `UiIcon`
[INFO] [stdout]   --> apps/desktop/src/main.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | use nyatidraw_editor_ui::{EditorChrome, TransientNotice, UiIcon, UiSlots};
[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: `UiIcon`
[INFO] [stdout]   --> apps/desktop/src/main.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | use nyatidraw_editor_ui::{EditorChrome, TransientNotice, UiIcon, UiSlots};
[INFO] [stdout]    |                                                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@apps/desktop/src/native_canvas.rs:721:20: 721:27}: Send`
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:721:14
[INFO] [stdout]     |
[INFO] [stdout] 721 |             .spawn(move || drop(canvas))
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `(Box<ActiveCanvas>,): Send`
[INFO] [stdout]     = note: which requires `Box<ActiveCanvas>: Send`
[INFO] [stdout]     = note: which requires `boxed::BoxRaw<ActiveCanvas>: Send`
[INFO] [stdout]     = note: which requires `ActiveCanvas: Send`
[INFO] [stdout]     = note: which requires `GpuCompositeScene: Send`
[INFO] [stdout]     = note: which requires `GpuWorkingTile: Send`
[INFO] [stdout]     = note: which requires `wgpu::TextureView: Send`
[INFO] [stdout]     = note: which requires `wgpu::Texture: Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchTexture: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::backend::wgpu_core::CoreTexture>: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreTexture: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]     = note: which requires `wgpu::wgpu_core::global::Global: Send`
[INFO] [stdout]     = note: which requires `Hub: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`nyatidraw_desktop`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@apps/desktop/src/native_canvas.rs:721:20: 721:27}: Send`
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:721:14
[INFO] [stdout]     |
[INFO] [stdout] 721 |             .spawn(move || drop(canvas))
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `(Box<native_canvas::ActiveCanvas>,): Send`
[INFO] [stdout]     = note: which requires `Box<native_canvas::ActiveCanvas>: Send`
[INFO] [stdout]     = note: which requires `boxed::BoxRaw<native_canvas::ActiveCanvas>: Send`
[INFO] [stdout]     = note: which requires `native_canvas::ActiveCanvas: Send`
[INFO] [stdout]     = note: which requires `GpuCompositeScene: Send`
[INFO] [stdout]     = note: which requires `GpuWorkingTile: Send`
[INFO] [stdout]     = note: which requires `wgpu::TextureView: Send`
[INFO] [stdout]     = note: which requires `wgpu::Texture: Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchTexture: Send`
[INFO] [stdout]     = note: which requires `std::sync::Arc<wgpu::backend::wgpu_core::CoreTexture>: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreTexture: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]     = note: which requires `std::sync::Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]     = note: which requires `wgpu::wgpu_core::global::Global: Send`
[INFO] [stdout]     = note: which requires `Hub: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`nyatidraw_desktop`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> apps/desktop/src/desktop_shell.rs:78:31
[INFO] [stdout]    |
[INFO] [stdout] 78 |         .with_on_window(move |window, vdom: &mut VirtualDom| {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> apps/desktop/src/desktop_shell.rs:78:31
[INFO] [stdout]    |
[INFO] [stdout] 78 |         .with_on_window(move |window, vdom: &mut VirtualDom| {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elapsed_since_launch` is never used
[INFO] [stdout]    --> apps/desktop/src/main.rs:470:15
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub(crate) fn elapsed_since_launch() -> u128 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SystemClipboard` is never constructed
[INFO] [stdout]   --> apps/desktop/src/artwork_clipboard.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct SystemClipboard;
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PageCopyWorker` is never constructed
[INFO] [stdout]   --> apps/desktop/src/artwork_clipboard.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct PageCopyWorker {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start` is never used
[INFO] [stdout]   --> apps/desktop/src/artwork_clipboard.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl PageCopyWorker {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 19 |     pub(crate) fn start(
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `page_tiles` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub(crate) fn page_tiles(
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_page` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub(crate) fn copy_page(
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:163:7
[INFO] [stdout]     |
[INFO] [stdout] 163 | const HEADER: &[u8; 8] = b"NTDRCLP1";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BYTES` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:164:7
[INFO] [stdout]     |
[INFO] [stdout] 164 | const HEADER_BYTES: usize = 24;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BYTES` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:165:7
[INFO] [stdout]     |
[INFO] [stdout] 165 | const MAX_BYTES: usize = 128 * 1024 * 1024;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_exact` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:167:4
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn encode_exact(fragment: &RasterFragment) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_exact` is never used
[INFO] [stdout]    --> apps/desktop/src/artwork_clipboard.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn decode_exact(bytes: &[u8]) -> Result<RasterFragment, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EditFailure` is never used
[INFO] [stdout]   --> apps/desktop/src/edit_worker.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum EditFailure {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_picker_pixel` is never used
[INFO] [stdout]   --> apps/desktop/src/edit_worker.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) fn sample_picker_pixel(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditOutcome` is never constructed
[INFO] [stdout]   --> apps/desktop/src/edit_worker.rs:30:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct EditOutcome {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute` is never used
[INFO] [stdout]   --> apps/desktop/src/edit_worker.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) fn execute(
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_with_clipboard` is never used
[INFO] [stdout]   --> apps/desktop/src/edit_worker.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub(crate) fn execute_with_clipboard(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `probe_project` is never used
[INFO] [stdout]    --> apps/desktop/src/edit_worker.rs:143:15
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub(crate) fn probe_project() -> Option<std::path::PathBuf> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pause_scratch_probe` is never used
[INFO] [stdout]    --> apps/desktop/src/edit_worker.rs:161:4
[INFO] [stdout]     |
[INFO] [stdout] 161 | fn pause_scratch_probe() -> Result<(), EditFailure> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pause_artwork_probe` is never used
[INFO] [stdout]    --> apps/desktop/src/edit_worker.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub(crate) fn pause_artwork_probe(kind: &str) -> Result<(), String> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `submit` and `flush` are never used
[INFO] [stdout]    --> apps/desktop/src/layout_store.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl LayoutStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub(crate) fn submit(&self, tree: &DockTree) {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub(crate) fn flush(&self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NativeViewport` is never constructed
[INFO] [stdout]   --> apps/desktop/src/live_ink.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub(crate) enum CanvasCommand {
[INFO] [stdout]    |                 ------------- variant in this enum
[INFO] [stdout] 49 |     Ui(CommandEnvelope),
[INFO] [stdout] 50 |     NativeViewport {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CanvasCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CanvasViewportPublishError` is never used
[INFO] [stdout]   --> apps/desktop/src/live_ink.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub(crate) enum CanvasViewportPublishError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `recorder_mapping`, `contains_document_point`, `client_css_for_document`, `contains_client_point`, `document_point_for_client`, and `window_viewport_transform` are never used
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:78:19
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl CanvasViewportSnapshot {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub(crate) fn recorder_mapping(self) -> Option<nyatidraw_input_platform::ViewportSnapshot> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn contains_document_point(self, point: Point) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub(crate) fn client_css_for_document(self, point: Point) -> Option<[f64; 2]> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub(crate) fn contains_client_point(self, point: Point) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub(crate) fn document_point_for_client(self, point: Point) -> Option<Point> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn window_viewport_transform(self) -> Option<ViewportTransform> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `raw_input`, `canvas_viewport`, `picker_epoch`, `canvas_client_css_origin`, `save_as_path`, and `navigation_tool` are never read
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | struct LiveInkInner {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 171 |     raw_input: Mutex<RawInputState>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 172 |     canvas_viewport: Mutex<CanvasViewportSnapshot>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     picker_epoch: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 183 |     project_epoch: AtomicU64,
[INFO] [stdout] 184 |     canvas_client_css_origin: Mutex<Option<[f64; 2]>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 185 |     activation_notice: Mutex<Option<String>>,
[INFO] [stdout] 186 |     save_as_path: Mutex<Option<std::path::PathBuf>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     navigation_tool: AtomicBool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SavingProject`, `Exporting`, `Failed`, and `Ready` are never constructed
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub(crate) enum CloseStatus {
[INFO] [stdout]     |                 ----------- variants in this enum
[INFO] [stdout] 200 |     Open,
[INFO] [stdout] 201 |     SavingProject,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 202 |     Exporting,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 203 |     Failed {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     Ready,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CloseStatus` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_event_sequence` is never read
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | struct ProtocolMailbox {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 215 |     next_event_sequence: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Waiting`, `Queued`, `Running`, `Current`, and `Failed` are never constructed
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub(crate) enum ExportStatus {
[INFO] [stdout]     |                 ------------ variants in this enum
[INFO] [stdout] 223 |     Idle,
[INFO] [stdout] 224 |     Waiting { generation: u64 },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 225 |     Queued { generation: u64 },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 226 |     Running { generation: u64 },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 227 |     Current { generation: u64 },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 228 |     Failed { generation: u64 },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExportStatus` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generation` and `progression` are never used
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:232:19
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl ExportStatus {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 232 |     pub(crate) fn generation(self) -> Option<u64> {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn progression(self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 261 | struct RawInputState {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] 262 |     performance_batch_start: Option<std::time::Instant>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 263 |     queue: InputQueue,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pending_transitions: VecDeque<StylusSample>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 267 |     transition_capacity: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 268 |     begin_layers: VecDeque<(u64, LayerId, bool, u64)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 269 |     admission_layer: LayerId,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 270 |     admitted_active: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 271 |     admitted_temporary_picker: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 272 |     temporary_read_pending: Option<(u64, u64)>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 273 |     edit_paused: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 274 |     skipped_edit_gesture: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     discontinuity: Option<InputDiscontinuity>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 276 |     stats: InputSafetyStats,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdmittedSample` is never constructed
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:295:19
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub(crate) struct AdmittedSample {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> apps/desktop/src/live_ink.rs:330:19
[INFO] [stdout]      |
[INFO] [stdout]  305 | impl LiveInkBridge {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  330 |     pub(crate) fn persist_layout(&self, tree: &nyatidraw_api::DockTree) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  378 |     pub(crate) fn flush_layout(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  449 |     pub(crate) fn push(&self, sample: StylusSample) -> Result<bool, PushError> {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  499 |     pub(crate) fn push_with_temporary_picker(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  592 |     pub(crate) fn try_pause_for_edit(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  607 |     pub(crate) fn resume_after_edit(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  613 |     pub(crate) fn complete_temporary_pick(&self, sequence: (u64, u64)) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  620 |     pub(crate) fn temporary_pick_pending(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  704 |     pub(crate) fn push_native_viewport(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  751 |     pub(crate) fn drain_editor_commands(&self, output: &mut Vec<CanvasCommand>) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  763 |     pub(crate) fn publish_editor_event(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  818 |     pub(crate) fn reset_for_project_activation(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  931 |     pub(crate) fn restore_export_failure_after_reopen(&self, previous: ExportStatus) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  945 |     pub(crate) fn publish_export_status(&self, incoming: ExportStatus) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  975 |     pub(crate) fn fail_incomplete_export(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1010 |     pub(crate) fn picker_epoch(&self) -> u64 {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1016 |     pub(crate) fn set_canvas_client_css_origin(&self, origin: Option<[f64; 2]>) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1035 |     pub(crate) fn picker_client_css(&self, point: Point) -> Option<[f64; 2]> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1048 |     pub(crate) fn invalidate_picker(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1062 |     pub(crate) fn publish_picker_snapshot(&self, snapshot: Option<PickerSnapshot>) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1082 |     pub(crate) fn publish_navigator_frame(&self, frame: NavigatorFrame) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1115 |     pub(crate) fn publish_layer_thumbnails(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1153 |     pub(crate) fn publish_navigator_viewport(&self, viewport: NavigatorViewport) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     pub(crate) fn clear_navigator_viewport(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1188 |     pub(crate) fn publish_workspace_error(&self, summary: String) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1233 |     pub(crate) fn queue_save_as(&self, path: std::path::PathBuf) -> Result<(), String> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1260 |     pub(crate) fn take_save_as(&self) -> Option<std::path::PathBuf> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1268 |     pub(crate) fn finish_save_as(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1277 |     pub(crate) fn begin_close(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1304 |     pub(crate) fn begin_retirement(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1326 |     pub(crate) fn publish_close_status(&self, status: CloseStatus) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1336 |     pub(crate) fn reopen_after_close_failure(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1342 |     pub(crate) fn set_admission_layer(&self, layer: LayerId) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1346 |     pub(crate) fn set_navigation_tool(&self, enabled: bool) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1350 |     pub(crate) fn navigation_tool(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1354 |     pub(crate) fn set_redraw_notifier(&self, notifier: Notifier) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1384 |     pub(crate) fn begin_redraw(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1412 |     pub(crate) fn drain_into(
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1470 |     pub(crate) fn maximum_drain_len(&self) -> usize {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1474 |     pub(crate) fn primary_input_capacity(&self) -> usize {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1478 |     pub(crate) fn input_safety_stats(&self) -> InputSafetyStats {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1486 |     pub(crate) fn publish_canvas_surface(&self, width_px: u32, height_px: u32, scale: f64) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1504 |     pub(crate) fn publish_renderer_view(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1545 |     pub(crate) fn invalidate_canvas_viewport(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1557 |     pub(crate) fn canvas_viewport_snapshot(&self) -> CanvasViewportSnapshot {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1561 |     fn raw_input(&self) -> MutexGuard<'_, RawInputState> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1568 |     fn canvas_viewport(&self) -> MutexGuard<'_, CanvasViewportSnapshot> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `invalidate_frame_thumbnails`, `next_frame_thumbnail_request`, and `finish_frame_thumbnail` are never used
[INFO] [stdout]   --> apps/desktop/src/live_ink/frame_previews.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LiveInkBridge {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn invalidate_frame_thumbnails(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn next_frame_thumbnail_request(&self) -> Option<FrameThumbnailRequest> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub(crate) fn finish_frame_thumbnail(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIVE_DAB_LIMITS` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const LIVE_DAB_LIMITS: LiveDabLimits = LiveDabLimits {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIVE_LAYER` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:110:7
[INFO] [stdout]     |
[INFO] [stdout] 110 | const LIVE_LAYER: LayerId = LayerId(1);
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BACKGROUND_LAYER` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:111:7
[INFO] [stdout]     |
[INFO] [stdout] 111 | const BACKGROUND_LAYER: LayerId = LayerId(2);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOT_GROUP` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const ROOT_GROUP: GroupId = GroupId(100);
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TRANSPARENT_HISTORY_TILE` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | static TRANSPARENT_HISTORY_TILE: [u8; TILE_BYTE_LEN] = [0; TILE_BYTE_LEN];
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INK_GROUP` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:114:7
[INFO] [stdout]     |
[INFO] [stdout] 114 | const INK_GROUP: GroupId = GroupId(10);
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MATERIALIZATION_QUEUE_CAPACITY` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:115:7
[INFO] [stdout]     |
[INFO] [stdout] 115 | const MATERIALIZATION_QUEUE_CAPACITY: usize = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLOSED_STROKE_COMPLETION_QUEUE_CAPACITY` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:118:7
[INFO] [stdout]     |
[INFO] [stdout] 118 | const CLOSED_STROKE_COMPLETION_QUEUE_CAPACITY: usize = MATERIALIZATION_QUEUE_CAPACITY;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECT_PATH_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:119:7
[INFO] [stdout]     |
[INFO] [stdout] 119 | const PROJECT_PATH_ENV: &str = "NAYATI_PROJECT_PATH";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DURABILITY_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const DURABILITY_PROBE_ENV: &str = "NAYATI_DESKTOP_DURABILITY_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLOSE_RAW_QUEUE_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const CLOSE_RAW_QUEUE_PROBE_ENV: &str = "NAYATI_CLOSE_RAW_QUEUE_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTIVE_CLOSE_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:122:7
[INFO] [stdout]     |
[INFO] [stdout] 122 | const ACTIVE_CLOSE_PROBE_ENV: &str = "NAYATI_ACTIVE_CLOSE_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAVE_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:123:7
[INFO] [stdout]     |
[INFO] [stdout] 123 | const SAVE_PROBE_ENV: &str = "NAYATI_SAVE_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROTOCOL_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:124:7
[INFO] [stdout]     |
[INFO] [stdout] 124 | const PROTOCOL_PROBE_ENV: &str = "NAYATI_PROTOCOL_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HISTORY_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const HISTORY_PROBE_ENV: &str = "NAYATI_HISTORY_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT_SAFETY_PROBE_ENV` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | const INPUT_SAFETY_PROBE_ENV: &str = "NAYATI_INPUT_SAFETY_PROBE";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ACTIVE_PROBE_USED` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | static ACTIVE_PROBE_USED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SAVE_PROBE_USED` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | static SAVE_PROBE_USED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `history_probe_command` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn history_probe_command() -> Option<EditorCommand> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl DrawingConfig {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 238 |     fn stage_projection(&self, projection: &mut ProjectionState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn brush_preset_values(self) -> nyatidraw_api::BrushPresetValues {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     fn apply_brush_preset(&mut self, values: nyatidraw_api::BrushPresetValues) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn select_tool(&mut self, tool: DrawingTool) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     fn preset_for_stroke(mut self, hardware_eraser: bool) -> BrushPreset {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     fn smoothing_for_stroke(mut self, hardware_eraser: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     fn stroke_color(self) -> StrokeColor {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     fn gpu_color(self) -> [f32; 4] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProjectLocation` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:427:17
[INFO] [stdout]     |
[INFO] [stdout] 427 | pub(crate) enum ProjectLocation {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_environment_or_args`, `from_project_path`, `from_positional_path`, `same_storage`, `title`, and `export_path` are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:436:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | impl ProjectLocation {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 436 |     fn from_environment_or_args() -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     fn from_project_path(path: PathBuf) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     pub(crate) fn from_positional_path(path: PathBuf) -> Result<Option<Self>, String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     fn same_storage(&self, other: &Self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 540 |     fn title(&self) -> String {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 550 |     fn export_path(&self) -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preflight_project_activation` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn preflight_project_activation(location: &ProjectLocation) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `absolute_activation_path` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:600:4
[INFO] [stdout]     |
[INFO] [stdout] 600 | fn absolute_activation_path(path: PathBuf) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SaveAsWorker` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:611:6
[INFO] [stdout]     |
[INFO] [stdout] 611 | type SaveAsWorker = (JoinHandle<()>, Receiver<Result<PathBuf, String>>);
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdmissionGuard` is never constructed
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:613:8
[INFO] [stdout]     |
[INFO] [stdout] 613 | struct AdmissionGuard(LiveInkBridge);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SharedGpuCanvas` is never constructed
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:621:19
[INFO] [stdout]     |
[INFO] [stdout] 621 | pub(crate) struct SharedGpuCanvas {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:633:19
[INFO] [stdout]      |
[INFO] [stdout]  632 | impl SharedGpuCanvas {
[INFO] [stdout]      | -------------------- associated items in this implementation
[INFO] [stdout]  633 |     pub(crate) fn set_geometry_epoch(&mut self, epoch: u64) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  637 |     pub(crate) fn new(live_ink: LiveInkBridge) -> Self {
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  662 |     pub(crate) fn resume(
[INFO] [stdout]      |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  690 |     pub(crate) fn suspend(&mut self) {
[INFO] [stdout]      |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  705 |     pub(crate) fn begin_close(&mut self, width: u32, height: u32, scale: f64) {
[INFO] [stdout]      |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  733 |     pub(crate) fn poll_close(&mut self) {
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  753 |     fn publish_close_result(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  777 |     pub(crate) fn reopen_after_close_failure(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  798 |     pub(crate) fn save_as(
[INFO] [stdout]      |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  883 |     pub(crate) fn poll_save_as(&mut self, device: &wgpu::Device, queue: &wgpu::Queue) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  957 |     pub(crate) fn activate_project(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1065 |     pub(crate) fn mask_render_trace_authorized(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1069 |     pub(crate) fn mask_render_trace_page_size(&self) -> Option<[u32; 2]> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1077 |     pub(crate) fn render(&mut self, width: u32, height: u32, scale: f64) -> Option<RenderedCanvas> {
[INFO] [stdout]      |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RenderedCanvas` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1101:19
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub(crate) struct RenderedCanvas {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CanvasState` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1108:6
[INFO] [stdout]      |
[INFO] [stdout] 1108 | enum CanvasState {
[INFO] [stdout]      |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CanvasRetirement` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1115:6
[INFO] [stdout]      |
[INFO] [stdout] 1115 | enum CanvasRetirement {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitialLayoutFit` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1121:8
[INFO] [stdout]      |
[INFO] [stdout] 1121 | struct InitialLayoutFit {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActiveCanvas` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1126:8
[INFO] [stdout]      |
[INFO] [stdout] 1126 | struct ActiveCanvas {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1179:8
[INFO] [stdout]      |
[INFO] [stdout] 1177 | impl ActiveCanvas {
[INFO] [stdout]      | ----------------- associated items in this implementation
[INFO] [stdout] 1178 |     #[allow(clippy::too_many_lines)]
[INFO] [stdout] 1179 |     fn new(
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1394 |     fn enqueue_initial_commands(&mut self, live_ink: &LiveInkBridge) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1415 |     fn correct_initial_layout_fit(&mut self, width: u32, height: u32, scale: f64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1439 |     fn advance_protocol_probe(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1528 |     fn advance_history_probe(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1570 |     fn advance_edit_probe(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1649 |     fn advance_close_edit_probe(&mut self, step: u8) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1678 |     fn advance_lasso_guide_probe(&mut self, step: u8) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1730 |     fn advance_input_safety_probe_before_drain(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1785 |     fn advance_input_safety_probe_after_drain(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1841 |     fn render(
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2112 |     fn apply_commands(&mut self, width: u32, height: u32, scale: f64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2140 |     fn apply_command(&mut self, envelope: CommandEnvelope, width: u32, height: u32, scale: f64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2237 |     fn apply_editor_command(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2882 |     fn apply_layer_command(&mut self, command: LayerCommand) -> Result<bool, CommandRejectReason> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2922 |     fn enqueue_page_clipboard(&mut self) -> Result<bool, CommandRejectReason> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2950 |     fn ensure_artwork_command_idle(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2960 |     fn ensure_pixel_state_idle(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2981 |     fn install_history_move(&mut self, moved: HistoryMove) -> Result<(), CommandRejectReason> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2995 |     fn install_history_move_inner(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3107 |     fn clear_history_selection(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3118 |     fn enqueue_edit(
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3161 |     fn enqueue_artwork(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3249 |     fn adopt_native_edit(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3346 |     fn poll_artwork(&mut self) -> Option<HistoryTiming> {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3524 |     fn install_selection(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3555 |     fn advance_save_probe(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3579 |     fn flush_pending_save(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3620 |     fn reject_command(&self, command: nyatidraw_api::CommandId, reason: CommandRejectReason) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3631 |     fn synchronize_workspace_failure(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3646 |     fn publish_closed_stroke_dirty(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3679 |     fn apply_materialized_tiles(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3757 |     fn publish_current_projection(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3796 |     fn execute_gpu_ops(&mut self, drained_samples: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3942 |     fn fail_gpu_transaction(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendererView` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:3980:8
[INFO] [stdout]      |
[INFO] [stdout] 3980 | struct RendererView {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4004:8
[INFO] [stdout]      |
[INFO] [stdout] 4000 | impl RendererView {
[INFO] [stdout]      | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 4004 |     fn from_projection(projection: ViewportProjection) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4017 |     fn ensure_initialized(&mut self, width: u32, height: u32, scale: f64, document_size: [u32; 2]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4023 |     fn fit(&mut self, width: u32, height: u32, scale: f64, document_size: [u32; 2]) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 4041 |     fn actual_pixels(&mut self, width: u32, height: u32, scale: f64, document_size: [u32; 2]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4054 |     fn zoom_at(&mut self, focus: Point, steps: i8) {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4066 |     fn mapping(self) -> ViewportTransform {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4079 |     fn change_at(&mut self, focus: Point, zoom: f64, rotation: f64, mirrored: bool) {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4091 |     fn projection(self) -> ViewportProjection {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `navigator_viewport` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4102:4
[INFO] [stdout]      |
[INFO] [stdout] 4102 | fn navigator_viewport(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalized_page_coordinate` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4156:4
[INFO] [stdout]      |
[INFO] [stdout] 4156 | fn normalized_page_coordinate(coordinate: f64, extent: u32) -> i32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `projection_rejection` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4167:4
[INFO] [stdout]      |
[INFO] [stdout] 4167 | fn projection_rejection(error: ProjectionError) -> CommandRejectReason {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CpuSnapshotAdoption` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4179:8
[INFO] [stdout]      |
[INFO] [stdout] 4179 | struct CpuSnapshotAdoption<'a> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `upload_keys`, and `apply` are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4186:8
[INFO] [stdout]      |
[INFO] [stdout] 4185 | impl<'a> CpuSnapshotAdoption<'a> {
[INFO] [stdout]      | -------------------------------- associated items in this implementation
[INFO] [stdout] 4186 |     fn new(cache: &'a mut BTreeMap<TileKey, Vec<u8>>, snapshot: &'a TileSnapshot) -> Self {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 4207 |     fn upload_keys(&self, rebuild_surfaces: bool) -> impl Iterator<Item = TileKey> + '_ {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4214 |     fn apply(self) {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_layer_tree` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4233:15
[INFO] [stdout]      |
[INFO] [stdout] 4233 | pub(crate) fn default_layer_tree() -> LayerTree {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `legacy_layer_tree` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4251:15
[INFO] [stdout]      |
[INFO] [stdout] 4251 | pub(crate) fn legacy_layer_tree() -> LayerTree {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enqueue_synthetic_durability_probe` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4296:4
[INFO] [stdout]      |
[INFO] [stdout] 4296 | fn enqueue_synthetic_durability_probe(live_ink: &LiveInkBridge) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `input_probe_sample` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4338:4
[INFO] [stdout]      |
[INFO] [stdout] 4338 | fn input_probe_sample(sequence: u64, phase: PointerPhase) -> StylusSample {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StrokePipeline` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4361:8
[INFO] [stdout]      |
[INFO] [stdout] 4361 | struct StrokePipeline {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StrokeDrain` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4409:8
[INFO] [stdout]      |
[INFO] [stdout] 4409 | struct StrokeDrain {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `record_brush_begin` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4420:8
[INFO] [stdout]      |
[INFO] [stdout] 4419 | impl StrokeDrain {
[INFO] [stdout]      | ---------------- method in this implementation
[INFO] [stdout] 4420 |     fn record_brush_begin(&mut self, size: u16, color: Option<[u8; 4]>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:4441:8
[INFO] [stdout]      |
[INFO] [stdout] 4440 | impl StrokePipeline {
[INFO] [stdout]      | ------------------- associated items in this implementation
[INFO] [stdout] 4441 |     fn new(live_ink: LiveInkBridge, materializer: MaterializationWorker) -> Self {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 4487 |     fn drain(&mut self, active_layer: LayerId, drawing: DrawingConfig) -> StrokeDrain {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4959 |     fn cancel_invalid_smoothed_stroke(&mut self, sequence: u64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4967 |     fn cancel_mask_work_limit(&mut self, sequence: u64, ended: Option<(u64, usize)>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4983 |     fn cancel_native_brush_discontinuity(&mut self, sequence: u64, reason: &str, message: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5001 |     fn consume_discontinuity(&mut self, discontinuity: InputDiscontinuity) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5051 |     fn fail_closed(&mut self, reason: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5076 |     fn queue_closed_stroke(&mut self, request: ClosedStrokeRequest) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5099 |     fn flush_pending_materializations(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5115 |     fn defer_materialization(&mut self, request: ClosedStrokeRequest) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5132 |     fn seal_active_for_shutdown(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `prepare_shutdown` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5212:8
[INFO] [stdout]      |
[INFO] [stdout] 5211 | impl StrokePipeline {
[INFO] [stdout]      | ------------------- method in this implementation
[INFO] [stdout] 5212 |     fn prepare_shutdown(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiveStroke` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5350:8
[INFO] [stdout]      |
[INFO] [stdout] 5350 | struct LiveStroke {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GpuStrokeOp` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5367:6
[INFO] [stdout]      |
[INFO] [stdout] 5367 | enum GpuStrokeOp {
[INFO] [stdout]      |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_gpu_dabs` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5388:4
[INFO] [stdout]      |
[INFO] [stdout] 5388 | fn append_gpu_dabs(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paint_dirty_tiles` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5411:4
[INFO] [stdout]      |
[INFO] [stdout] 5411 | fn paint_dirty_tiles(layer: LayerId, dirty: SignedDirtyRect) -> impl Iterator<Item = TileKey> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `retain_sample` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5428:8
[INFO] [stdout]      |
[INFO] [stdout] 5427 | impl LiveStroke {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 5428 |     fn retain_sample(&mut self, sample: StylusSample) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClosedStrokeRequest` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5440:8
[INFO] [stdout]      |
[INFO] [stdout] 5440 | struct ClosedStrokeRequest {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TryEnqueueStatus` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5455:6
[INFO] [stdout]      |
[INFO] [stdout] 5455 | enum TryEnqueueStatus {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EnqueueOutcome` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5462:8
[INFO] [stdout]      |
[INFO] [stdout] 5462 | struct EnqueueOutcome {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaterializationWorker` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5466:8
[INFO] [stdout]      |
[INFO] [stdout] 5466 | struct MaterializationWorker {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportEnqueueError` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5481:6
[INFO] [stdout]      |
[INFO] [stdout] 5481 | enum ExportEnqueueError {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExportGenerationGate` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5490:8
[INFO] [stdout]      |
[INFO] [stdout] 5490 | struct ExportGenerationGate {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_generation`, `accept_submission`, and `is_current` are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5496:8
[INFO] [stdout]      |
[INFO] [stdout] 5495 | impl ExportGenerationGate {
[INFO] [stdout]      | ------------------------- methods in this implementation
[INFO] [stdout] 5496 |     fn next_generation(&self) -> Result<u64, ()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5500 |     fn accept_submission(&mut self, generation: u64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5506 |     fn is_current(&self, generation: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkerExit` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5512:6
[INFO] [stdout]      |
[INFO] [stdout] 5512 | enum WorkerExit {
[INFO] [stdout]      |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaterializationBootstrap` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5518:8
[INFO] [stdout]      |
[INFO] [stdout] 5518 | struct MaterializationBootstrap {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkerRequest` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5531:6
[INFO] [stdout]      |
[INFO] [stdout] 5531 | enum WorkerRequest {
[INFO] [stdout]      |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArtworkOutcome` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5579:6
[INFO] [stdout]      |
[INFO] [stdout] 5579 | enum ArtworkOutcome {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArtworkJob` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5593:8
[INFO] [stdout]      |
[INFO] [stdout] 5593 | struct ArtworkJob {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryMove` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5604:8
[INFO] [stdout]      |
[INFO] [stdout] 5604 | struct HistoryMove {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProjectSink` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5612:6
[INFO] [stdout]      |
[INFO] [stdout] 5612 | enum ProjectSink {
[INFO] [stdout]      |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkerCommitError` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5618:6
[INFO] [stdout]      |
[INFO] [stdout] 5618 | enum WorkerCommitError {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_materialization_session` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5633:4
[INFO] [stdout]      |
[INFO] [stdout] 5633 | fn open_materialization_session(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_sink` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5791:4
[INFO] [stdout]      |
[INFO] [stdout] 5791 | fn project_sink(project_location: &ProjectLocation, db: ProjectDb) -> ProjectSink {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_project_id` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5804:4
[INFO] [stdout]      |
[INFO] [stdout] 5804 | fn next_project_id(reopened: &ReopenedProject) -> Result<u128, String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `publish_frame_previews` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5818:4
[INFO] [stdout]      |
[INFO] [stdout] 5818 | fn publish_frame_previews(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_materialization_worker` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5836:4
[INFO] [stdout]      |
[INFO] [stdout] 5836 | fn finish_materialization_worker(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:5855:8
[INFO] [stdout]      |
[INFO] [stdout] 5854 | impl MaterializationWorker {
[INFO] [stdout]      | -------------------------- associated items in this implementation
[INFO] [stdout] 5855 |     fn start(
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5956 |     fn persist_active_layer(&self, layer: LayerId) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5964 |     fn persist_tool_state(&self, drawing: DrawingConfig) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5985 |     fn try_enqueue(&self, request: ClosedStrokeRequest) -> TryEnqueueStatus {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6008 |     fn reserve_export(&self) -> Result<u64, ()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6025 |     fn enqueue_export(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6059 |     fn retire_display(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6063 |     fn enqueue_for_shutdown(&self, request: ClosedStrokeRequest) -> Result<(), ()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6075 |     fn drain_completed(&self, output: &mut Vec<ClosedStrokeCompletion>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClosedStrokeCompletion` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:6105:8
[INFO] [stdout]      |
[INFO] [stdout] 6105 | struct ClosedStrokeCompletion {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeferredTileUpload` is never constructed
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:6114:8
[INFO] [stdout]      |
[INFO] [stdout] 6114 | struct DeferredTileUpload {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adopt_materialized_completions` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:6123:4
[INFO] [stdout]      |
[INFO] [stdout] 6123 | fn adopt_materialized_completions(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `publish_closed_completion` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:6155:4
[INFO] [stdout]      |
[INFO] [stdout] 6155 | fn publish_closed_completion(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `materialization_loop` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:6204:4
[INFO] [stdout]      |
[INFO] [stdout] 6204 | fn materialization_loop(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `publish_navigator_frame` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7143:4
[INFO] [stdout]      |
[INFO] [stdout] 7143 | fn publish_navigator_frame(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `publish_layer_thumbnail_frames` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7171:4
[INFO] [stdout]      |
[INFO] [stdout] 7171 | fn publish_layer_thumbnail_frames(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportPngOutcome` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7219:6
[INFO] [stdout]      |
[INFO] [stdout] 7219 | enum ExportPngOutcome {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_current_png` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7224:4
[INFO] [stdout]      |
[INFO] [stdout] 7224 | fn export_current_png(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_current_png_sized` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7235:4
[INFO] [stdout]      |
[INFO] [stdout] 7235 | fn export_current_png_sized(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_probe_boundary` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7320:4
[INFO] [stdout]      |
[INFO] [stdout] 7320 | fn export_probe_boundary(path: &std::path::Path, stage: &str) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_file` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7385:4
[INFO] [stdout]      |
[INFO] [stdout] 7385 | fn replace_file(source: &std::path::Path, destination: &std::path::Path) -> std::io::Result<()> {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_synthetic_seed` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7390:4
[INFO] [stdout]      |
[INFO] [stdout] 7390 | fn add_synthetic_seed(width: u32, height: u32, output: &mut Vec<BrushDab>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_synthetic_background` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7409:4
[INFO] [stdout]      |
[INFO] [stdout] 7409 | fn add_synthetic_background(output: &mut Vec<BrushDab>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_timestamp_ns` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:7426:15
[INFO] [stdout]      |
[INFO] [stdout] 7426 | pub(crate) fn system_timestamp_ns() -> u64 {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `selected_tool` is never used
[INFO] [stdout]   --> apps/desktop/src/transform_runtime.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn selected_tool(current: DrawingTool, command: ToolCommand) -> Option<DrawingTool> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> apps/desktop/src/transform_runtime.rs:39:19
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout]  39 |     pub(super) fn transform_active(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub(super) fn stage_cancel_availability(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub(super) fn switch_transform_tool(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub(super) fn enqueue_free_transform(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn select_transform_tool(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn validate_provisional_layer_capacity(&self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub(super) fn flush_transform_preview(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub(super) fn reject_transform_outcome(&mut self, command: Option<&TransformCommand>) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     fn finish_transform_tool(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub(super) fn install_transform_outcome(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cancel_native_gesture`, `begin_native_transform`, and `observe_transform_sample` are never used
[INFO] [stdout]    --> apps/desktop/src/transform_runtime.rs:450:19
[INFO] [stdout]     |
[INFO] [stdout] 449 | impl StrokePipeline {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 450 |     pub(super) fn cancel_native_gesture(&mut self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     pub(super) fn begin_native_transform(&mut self, sample: StylusSample) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 512 |     pub(super) fn observe_transform_sample(&mut self, sample: StylusSample) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERVAL` is never used
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const INTERVAL: Duration = Duration::from_millis(33);
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PickerToken` is never constructed
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(super) struct PickerToken {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PickerRead` is never constructed
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(super) struct PickerRead {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PickerGesture` is never constructed
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(super) struct PickerGesture {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PickerRuntime` is never constructed
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(super) struct PickerRuntime {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PickerPreviewJob` is never constructed
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct PickerPreviewJob {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PickerWake` is never constructed
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | struct PickerWake {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `schedule` are never used
[INFO] [stdout]   --> apps/desktop/src/picker_preview.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl PickerWake {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 64 |     fn new(ink: LiveInkBridge) -> Option<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn schedule(&self, delay: Duration) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_picker`, `move_picker`, `picker_token_valid`, and `cancel_picker` are never used
[INFO] [stdout]    --> apps/desktop/src/picker_preview.rs:89:19
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl StrokePipeline {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout]  89 |     pub(super) fn begin_picker(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub(super) fn move_picker(&mut self, sample: StylusSample, point: Option<[i32; 2]>) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(super) fn picker_token_valid(&self, token: PickerToken) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub(super) fn cancel_picker(&mut self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_picker_preview` is never used
[INFO] [stdout]    --> apps/desktop/src/picker_preview.rs:166:19
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 166 |     pub(super) fn update_picker_preview(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_patch` is never used
[INFO] [stdout]    --> apps/desktop/src/picker_preview.rs:268:15
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub(super) fn sample_patch(
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/animation.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) struct State {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `restored` and `edit_tree` are never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/animation.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl State {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 21 |     pub(super) fn restored(
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub(super) fn edit_tree(&self, tree: &LayerTree) -> LayerTree {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OnionScene` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/animation.rs:50:6
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum OnionScene {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Runtime` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/animation.rs:55:19
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(super) struct Runtime {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `render_tree` are never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/animation.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl Runtime {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 70 |     pub(super) fn new(state: State) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub(super) fn render_tree(&self, tree: &LayerTree) -> Result<LayerTree, String> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Outcome` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/animation.rs:97:19
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub(super) struct Outcome {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/animation.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub(super) fn execute(
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/animation.rs:170:19
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 170 |     pub(super) fn stage_animation(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub(super) fn apply_animation_command(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn begin_animation_playback(&mut self) -> Result<bool, CommandRejectReason> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub(super) fn install_animation(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     fn display_animation_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn stop_animation(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn start_animation_clock(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     fn refresh_onion_display(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub(super) fn discard_onion_display(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub(super) fn install_onion_display(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub(super) fn tick_animation(&mut self) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Probe` is never constructed
[INFO] [stdout]  --> apps/desktop/src/native_canvas/animation_probe.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(super) struct Probe {
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `open`, `advance`, and `proof` are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/animation_probe.rs:14:19
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl Probe {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  14 |     pub(super) fn open(
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub(super) fn advance(&mut self, canvas: &mut ActiveCanvas) -> Result<bool, String> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn proof(canvas: &ActiveCanvas) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Worker` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/color_adjustment.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) struct Worker(ColorAdjustmentSession);
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Outcome` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/color_adjustment.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(super) struct Outcome {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColorStore` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/color_adjustment.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct ColorStore<'a>(DurableTransform<'a>);
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `active` and `execute` are never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/color_adjustment.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Worker {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 54 |     pub(super) fn active(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub(super) fn execute(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Runtime` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/color_adjustment.rs:93:19
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub(super) struct Runtime {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/color_adjustment.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 102 |     pub(super) fn color_adjustment_active(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub(super) fn stage_color_adjustment(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub(super) fn cancel_color_for_tool(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub(super) fn enqueue_color_adjustment(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub(super) fn flush_color_adjustment(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub(super) fn finish_color_adjustment_tool(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(super) fn reject_color_adjustment(&mut self, command: Option<&ColorAdjustmentCommand>) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub(super) fn install_color_adjustment(&mut self, outcome: Outcome) -> Result<(), String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExportReceipt` is never constructed
[INFO] [stdout]  --> apps/desktop/src/native_canvas/export_receipt.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(super) struct ExportReceipt {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `capture` and `matches` are never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/export_receipt.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ExportReceipt {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 16 |     pub(super) fn capture(snapshot: SnapshotId, path: &Path) -> Option<Self> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(super) fn matches(&self, snapshot: SnapshotId, path: &Path) -> bool {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/frame_previews.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) type Result = std::result::Result<(ObjectHash, FrameThumbnailFrame), String>;
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Job` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/frame_previews.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(super) struct Job {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `poll_frame_previews` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/frame_previews.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl ActiveCanvas {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 18 |     pub(super) fn poll_frame_previews(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/frame_previews.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub(super) fn render(
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trace` is never constructed
[INFO] [stdout]  --> apps/desktop/src/native_canvas/mask_probe.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(super) struct Trace {
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Probe` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/mask_probe.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) struct Probe {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `open`, `image_root`, `snapshot`, `proof`, `schedule_wake`, and `advance` are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/mask_probe.rs:24:19
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl Probe {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  24 |     pub(super) fn open(location: &ProjectLocation, empty: bool) -> Result<Option<Self>, String> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn image_root(canvas: &ActiveCanvas) -> Result<ContentRootId, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     fn snapshot(canvas: &ActiveCanvas) -> Result<TileSnapshot, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn proof(canvas: &ActiveCanvas) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn schedule_wake(&self, canvas: &ActiveCanvas) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn advance(&mut self, canvas: &mut ActiveCanvas) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `advance_mask_probe` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/mask_probe.rs:324:19
[INFO] [stdout]     |
[INFO] [stdout] 323 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 324 |     pub(super) fn advance_mask_probe(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `trace_mask_render` and `mask_render_sample` are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/mask_probe.rs:341:19
[INFO] [stdout]     |
[INFO] [stdout] 340 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 341 |     pub(super) fn trace_mask_render(&mut self, viewport: nyatidraw_input::ViewportTransform) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn mask_render_sample(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_pixel` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/mask_probe.rs:406:4
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn trace_pixel(pixels: &nyatidraw_paint_gpu::Rgba8Readback, point: [u32; 2]) -> Option<[u8; 4]> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_window_pixel` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/mask_probe.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn trace_window_pixel(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CanvasState` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/masks.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) struct CanvasState {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Preview` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/masks.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(super) struct Preview {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coverage` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/masks.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn coverage(snapshot: &TileSnapshot) -> TileSnapshot {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `trace_display` and `new` are never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/masks.rs:38:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl CanvasState {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 38 |     pub(super) fn trace_display(&self) -> &TileSnapshot {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(super) fn new(snapshot: &TileSnapshot) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/masks.rs:54:19
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl ActiveCanvas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout]  54 |     pub(super) fn synchronize_mask_target(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub(super) fn guard_mask_edit(&self, command: &EditCommand) -> Result<(), CommandRejectReason> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub(super) fn enqueue_mask(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub(super) fn adopt_mask_snapshot(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(super) fn adopt_mask_completion(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub(super) fn begin_mask_preview(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub(super) fn apply_mask_preview(&mut self, dabs: &[BrushDab]) -> Result<(), String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub(super) fn finish_mask_preview(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/masks.rs:201:15
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub(super) fn execute(
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/masks.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn commit(
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_stroke` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/masks.rs:277:15
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub(super) fn commit_stroke(
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lane` is never constructed
[INFO] [stdout]  --> apps/desktop/src/native_canvas/scaled_export.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(super) struct Lane {
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/scaled_export.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) struct Request {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reserve` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/scaled_export.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Lane {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 23 |     pub(super) fn reserve(&self, path: PathBuf, size: [u32; 2]) -> Result<Request, String> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/scaled_export.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Request {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 48 |     pub(super) fn run(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lane` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/sprite_export.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) struct Lane {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/sprite_export.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(super) struct Request {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reserve` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/sprite_export.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Lane {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 25 |     pub(super) fn reserve(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run` is never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/sprite_export.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Request {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 54 |     pub(super) fn run(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Store` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/tool_state.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(super) struct Store {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pending` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/tool_state.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(super) struct Pending(Arc<Mutex<PendingValues>>);
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingValues` is never constructed
[INFO] [stdout]   --> apps/desktop/src/native_canvas/tool_state.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct PendingValues {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `submit_presets`, `submit`, `submit_active_layer`, and `flush` are never used
[INFO] [stdout]   --> apps/desktop/src/native_canvas/tool_state.rs:55:19
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl Pending {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 55 |     pub(super) fn submit_presets(&self, path: PathBuf, bytes: Vec<u8>) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub(super) fn submit(&self, drawing: DrawingConfig) -> bool {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub(super) fn submit_active_layer(&self, layer: LayerId) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub(super) fn flush(&self, store: &mut Store, db: &ProjectDb, live_ink: &LiveInkBridge) {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `global_settings_path` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/tool_state.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn global_settings_path() -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PresetLibrary` is never constructed
[INFO] [stdout]    --> apps/desktop/src/native_canvas/tool_state.rs:122:19
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(super) struct PresetLibrary {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `load` and `load_path` are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/tool_state.rs:129:19
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl PresetLibrary {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout] 129 |     pub(super) fn load(live_ink: &LiveInkBridge) -> Self {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn load_path(path: Option<PathBuf>, live_ink: &LiveInkBridge) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/tool_state.rs:163:19
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl Store {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 163 |     pub(super) fn load(db: &ProjectDb, live_ink: &LiveInkBridge) -> (Self, Option<DrawingConfig>) {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn load_with_global_path(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub(super) fn active_layer(&self) -> Option<LayerId> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     fn persist_active_layer(&mut self, db: &ProjectDb, layer: LayerId, live_ink: &LiveInkBridge) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub(super) fn initialize(
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub(super) fn persist(
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn notify_failure(&mut self, live_ink: &LiveInkBridge) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/tool_state.rs:276:15
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(super) fn encode(mut drawing: DrawingConfig) -> Vec<u8> {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas/tool_state.rs:293:15
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub(super) fn decode(bytes: &[u8]) -> Option<DrawingConfig> {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BINS` is never used
[INFO] [stdout]   --> apps/desktop/src/performance.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const BINS: usize = 1024;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HISTORY_SAMPLE_CAPACITY` is never used
[INFO] [stdout]   --> apps/desktop/src/performance.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const HISTORY_SAMPLE_CAPACITY: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAGES` is never used
[INFO] [stdout]   --> apps/desktop/src/performance.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const STAGES: [&str; 20] = [
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stage` is never used
[INFO] [stdout]   --> apps/desktop/src/performance.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) enum Stage {
[INFO] [stdout]    |                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryTiming` is never constructed
[INFO] [stdout]   --> apps/desktop/src/performance.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) struct HistoryTiming {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `queued`, `received`, `adopted`, and `presented` are never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:74:19
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl HistoryTiming {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  74 |     pub(crate) fn queued() -> Option<Self> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) fn received(&mut self, worker: Option<HistoryWorkerTiming>) {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub(crate) fn adopted(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn presented(self) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryWorkerTiming` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:130:19
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub(crate) struct HistoryWorkerTiming([Instant; 7]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HistoryWorkerStep` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub(crate) enum HistoryWorkerStep {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `begin` and `mark` are never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:142:19
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl HistoryWorkerTiming {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] 142 |     pub(crate) fn begin() -> Option<Self> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub(crate) fn mark(timing: &mut Option<Self>, step: HistoryWorkerStep) {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistorySample` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout] 153 | struct HistorySample {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl HistorySample {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 164 |     fn print(&self, owner: &str) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ENABLED` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | static ENABLED: OnceLock<bool> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `EXPORTING` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | static EXPORTING: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:205:15
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub(crate) fn start() -> Option<Instant> {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Span` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:210:19
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub(crate) struct Span(Option<(Instant, Stage, bool)>);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:213:19
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl Span {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 213 |     pub(crate) fn new(stage: Stage) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExportInterval` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:228:19
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub(crate) struct ExportInterval;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `enter` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:231:19
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl ExportInterval {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 231 |     pub(crate) fn enter() -> Self {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Histogram` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | struct Histogram {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, and `percentile_upper` are never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl Histogram {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 253 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     fn add(&mut self, micros: u64) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn percentile_upper(&self, percent: u64) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Recorder` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | struct Recorder {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_recorder` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn with_recorder(f: impl FnOnce(&mut Recorder)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:326:4
[INFO] [stdout]     |
[INFO] [stdout] 326 | fn record(stage: Stage, at: Instant, exporting: bool) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `input_dequeued` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:333:15
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub(crate) fn input_dequeued(at: Option<Instant>) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `presented` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:346:15
[INFO] [stdout]     |
[INFO] [stdout] 346 | pub(crate) fn presented() {
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flush` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:360:15
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub(crate) fn flush(owner: &str) {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TRACE_CAPACITY` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:406:7
[INFO] [stdout]     |
[INFO] [stdout] 406 | const FRAME_TRACE_CAPACITY: usize = 128;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TRACE_TAIL_US` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:407:7
[INFO] [stdout]     |
[INFO] [stdout] 407 | const FRAME_TRACE_TAIL_US: u128 = 8_000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FRAME_TRACE_ENABLED` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | static FRAME_TRACE_ENABLED: OnceLock<bool> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FrameMark` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:411:17
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub(crate) enum FrameMark {
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TraceInput` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:424:8
[INFO] [stdout]     |
[INFO] [stdout] 424 | struct TraceInput {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameSample` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | struct FrameSample {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameTrace` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:448:8
[INFO] [stdout]     |
[INFO] [stdout] 448 | struct FrameTrace {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameBatch` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:471:19
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub(crate) struct FrameBatch(bool);
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `begin` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:474:19
[INFO] [stdout]     |
[INFO] [stdout] 473 | impl FrameBatch {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 474 |     pub(crate) fn begin(control_boundary: bool) -> Self {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `frame_mark` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:521:15
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub(crate) fn frame_mark(mark: FrameMark) {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaterializedCounters` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:539:8
[INFO] [stdout]     |
[INFO] [stdout] 539 | struct MaterializedCounters {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `accumulate` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:552:8
[INFO] [stdout]     |
[INFO] [stdout] 551 | impl MaterializedCounters {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 552 |     fn accumulate(&mut self, add: Self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaterializedTrace` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:569:19
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub(crate) struct MaterializedTrace {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `begin`, `add_completed`, `add_cpu_clone`, `add_upload_attempt`, `add_upload_success`, and `add_deferred` are never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:575:19
[INFO] [stdout]     |
[INFO] [stdout] 574 | impl MaterializedTrace {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 575 |     pub(crate) fn begin() -> Self {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub(crate) fn add_completed(&mut self, count: usize) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 607 |     pub(crate) fn add_cpu_clone(&mut self, bytes: usize) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 617 |     pub(crate) fn add_upload_attempt(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 623 |     pub(crate) fn add_upload_success(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub(crate) fn add_deferred(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_dequeued` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:654:4
[INFO] [stdout]     |
[INFO] [stdout] 654 | fn trace_dequeued(admission: Instant) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:734:8
[INFO] [stdout]     |
[INFO] [stdout] 733 | impl FrameSample {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 734 |     fn print(self, owner: &str) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flush_frame_trace` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:788:4
[INFO] [stdout]     |
[INFO] [stdout] 788 | fn flush_frame_trace(owner: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `USED` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | static USED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceProbe` is never constructed
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct PerformanceProbe {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl PerformanceProbe {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub(crate) fn start(ink: &LiveInkBridge, project: &Path) -> Option<Self> {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `await_start` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn await_start(ink: &LiveInkBridge, stop: &AtomicBool, marker: &Path) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `healthy` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn healthy(ink: &LiveInkBridge, stop: &AtomicBool) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn wait(ink: &LiveInkBridge, stop: &AtomicBool, ready: impl Fn() -> bool) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `control` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn control(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn save(ink: &LiveInkBridge, stop: &AtomicBool, wait_for_start: bool) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn run(
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CANVAS` is never used
[INFO] [stdout]  --> apps/desktop/src/performance_workload.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CANVAS: CanvasSpec = CanvasSpec {
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STROKES` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const STROKES: u32 = 32;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERVAL_NS` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const INTERVAL_NS: u64 = 4_166_667;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAST_SAMPLE` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const LAST_SAMPLE: u32 = 120;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const COLOR: [u8; 4] = [26, 199, 232, 255];
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BRUSH` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const BRUSH: BrushPreset = BrushPreset {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn sample(stroke: u32, index: u32) -> StylusSample {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_target` is never used
[INFO] [stdout]  --> apps/desktop/src/save_as.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) fn validate_target(path: &Path) -> Result<(), String> {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Staging` is never constructed
[INFO] [stdout]   --> apps/desktop/src/save_as.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Staging(PathBuf);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_closed_project` is never used
[INFO] [stdout]   --> apps/desktop/src/save_as.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) fn copy_closed_project(source: &Path, target: &Path) -> Result<(), String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_target` is never used
[INFO] [stdout]   --> apps/desktop/src/scaled_export.rs:52:15
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) fn validate_target(path: &std::path::Path) -> Result<(), String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_target` is never used
[INFO] [stdout]   --> apps/desktop/src/sprite_export.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) fn validate_target(directory: &std::path::Path) -> Result<(), String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformWorker` is never constructed
[INFO] [stdout]   --> apps/desktop/src/transform_worker.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct TransformWorker(TransformSession);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformOutcome` is never constructed
[INFO] [stdout]   --> apps/desktop/src/transform_worker.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) struct TransformOutcome {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DurableTransform` is never constructed
[INFO] [stdout]   --> apps/desktop/src/transform_worker.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) struct DurableTransform<'a> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute` and `execute_with_clipboard` are never used
[INFO] [stdout]   --> apps/desktop/src/transform_worker.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl TransformWorker {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 58 |     #[allow(clippy::too_many_arguments)]
[INFO] [stdout] 59 |     pub(crate) fn execute(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub(crate) fn execute_with_clipboard(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `background_colors` is never used
[INFO] [stdout]   --> apps/desktop/src/workspace_appearance.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl WorkspaceAppearance {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub(crate) fn background_colors(self) -> [[u8; 3]; 2] {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contains_document_point`, `contains_client_point`, and `document_point_for_client` are never used
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl CanvasViewportSnapshot {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn contains_document_point(self, point: Point) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub(crate) fn contains_client_point(self, point: Point) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub(crate) fn document_point_for_client(self, point: Point) -> Option<Point> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Failed` and `Ready` are never constructed
[INFO] [stdout]    --> apps/desktop/src/live_ink.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub(crate) enum CloseStatus {
[INFO] [stdout]     |                 ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 203 |     Failed {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     Ready,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CloseStatus` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_canvas_client_css_origin`, `navigation_tool`, `set_redraw_notifier`, and `begin_redraw` are never used
[INFO] [stdout]     --> apps/desktop/src/live_ink.rs:1016:19
[INFO] [stdout]      |
[INFO] [stdout]  305 | impl LiveInkBridge {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1016 |     pub(crate) fn set_canvas_client_css_origin(&self, origin: Option<[f64; 2]>) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1350 |     pub(crate) fn navigation_tool(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1354 |     pub(crate) fn set_redraw_notifier(&self, notifier: Notifier) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1384 |     pub(crate) fn begin_redraw(&self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_environment_or_args` and `same_storage` are never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:436:8
[INFO] [stdout]     |
[INFO] [stdout] 435 | impl ProjectLocation {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 436 |     fn from_environment_or_args() -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     fn same_storage(&self, other: &Self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preflight_project_activation` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn preflight_project_activation(location: &ProjectLocation) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SaveAsWorker` is never used
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:611:6
[INFO] [stdout]     |
[INFO] [stdout] 611 | type SaveAsWorker = (JoinHandle<()>, Receiver<Result<PathBuf, String>>);
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdmissionGuard` is never constructed
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:613:8
[INFO] [stdout]     |
[INFO] [stdout] 613 | struct AdmissionGuard(LiveInkBridge);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SharedGpuCanvas` is never constructed
[INFO] [stdout]    --> apps/desktop/src/native_canvas.rs:621:19
[INFO] [stdout]     |
[INFO] [stdout] 621 | pub(crate) struct SharedGpuCanvas {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:633:19
[INFO] [stdout]      |
[INFO] [stdout]  632 | impl SharedGpuCanvas {
[INFO] [stdout]      | -------------------- associated items in this implementation
[INFO] [stdout]  633 |     pub(crate) fn set_geometry_epoch(&mut self, epoch: u64) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  637 |     pub(crate) fn new(live_ink: LiveInkBridge) -> Self {
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  662 |     pub(crate) fn resume(
[INFO] [stdout]      |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  690 |     pub(crate) fn suspend(&mut self) {
[INFO] [stdout]      |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  705 |     pub(crate) fn begin_close(&mut self, width: u32, height: u32, scale: f64) {
[INFO] [stdout]      |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  733 |     pub(crate) fn poll_close(&mut self) {
[INFO] [stdout]      |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  753 |     fn publish_close_result(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  777 |     pub(crate) fn reopen_after_close_failure(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  798 |     pub(crate) fn save_as(
[INFO] [stdout]      |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  883 |     pub(crate) fn poll_save_as(&mut self, device: &wgpu::Device, queue: &wgpu::Queue) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  957 |     pub(crate) fn activate_project(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1065 |     pub(crate) fn mask_render_trace_authorized(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1069 |     pub(crate) fn mask_render_trace_page_size(&self) -> Option<[u32; 2]> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1077 |     pub(crate) fn render(&mut self, width: u32, height: u32, scale: f64) -> Option<RenderedCanvas> {
[INFO] [stdout]      |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `texture`, `history_timing`, `viewport`, and `geometry_epoch` are never read
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1102:16
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub(crate) struct RenderedCanvas {
[INFO] [stdout]      |                   -------------- fields in this struct
[INFO] [stdout] 1102 |     pub(crate) texture: wgpu::Texture,
[INFO] [stdout]      |                ^^^^^^^
[INFO] [stdout] 1103 |     pub(crate) history_timing: Option<HistoryTiming>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 1104 |     pub(crate) viewport: Option<ViewportTransform>,
[INFO] [stdout]      |                ^^^^^^^^
[INFO] [stdout] 1105 |     pub(crate) geometry_epoch: u64,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CanvasState` is never used
[INFO] [stdout]     --> apps/desktop/src/native_canvas.rs:1108:6
[INFO] [stdout]      |
[INFO] [stdout] 1108 | enum CanvasState {
[INFO] [stdout]      |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `present` is never read
[INFO] [stdout]   --> apps/desktop/src/native_canvas/mask_probe.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub(super) struct Trace {
[INFO] [stdout]    |                   ----- field in this struct
[INFO] [stdout] 10 |     pub(super) remaining: u8,
[INFO] [stdout] 11 |     pub(super) present: bool,
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InputPresent`, `Frame`, `SurfaceAcquire`, `SurfacePresent`, and `HistoryQueueToPresent` are never constructed
[INFO] [stdout]   --> apps/desktop/src/performance.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) enum Stage {
[INFO] [stdout]    |                 ----- variants in this enum
[INFO] [stdout] 39 |     InputDequeue,
[INFO] [stdout] 40 |     InputPresent,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     Frame,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 45 |     SurfaceAcquire,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     SurfacePresent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     HistoryQueueToPresent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sequence` is never read
[INFO] [stdout]   --> apps/desktop/src/performance.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) struct HistoryTiming {
[INFO] [stdout]    |                   ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sequence: u64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HistoryTiming` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `presented` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl HistoryTiming {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn presented(self) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `presented` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:346:15
[INFO] [stdout]     |
[INFO] [stdout] 346 | pub(crate) fn presented() {
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AcquireBegin`, `AcquireEnd`, and `PresentBegin` are never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub(crate) enum FrameMark {
[INFO] [stdout]     |                 --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 415 |     AcquireBegin,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 416 |     AcquireEnd,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 417 |     PresentBegin,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FrameMark` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameBatch` is never constructed
[INFO] [stdout]    --> apps/desktop/src/performance.rs:471:19
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub(crate) struct FrameBatch(bool);
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `begin` is never used
[INFO] [stdout]    --> apps/desktop/src/performance.rs:474:19
[INFO] [stdout]     |
[INFO] [stdout] 473 | impl FrameBatch {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 474 |     pub(crate) fn begin(control_boundary: bool) -> Self {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `USED` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | static USED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceProbe` is never constructed
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct PerformanceProbe {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl PerformanceProbe {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub(crate) fn start(ink: &LiveInkBridge, project: &Path) -> Option<Self> {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `await_start` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn await_start(ink: &LiveInkBridge, stop: &AtomicBool, marker: &Path) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `healthy` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_probe.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn healthy(ink: &LiveInkBridge, stop: &AtomicBool) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn wait(ink: &LiveInkBridge, stop: &AtomicBool, ready: impl Fn() -> bool) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `control` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn control(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn save(ink: &LiveInkBridge, stop: &AtomicBool, wait_for_start: bool) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> apps/desktop/src/performance_probe.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn run(
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CANVAS` is never used
[INFO] [stdout]  --> apps/desktop/src/performance_workload.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CANVAS: CanvasSpec = CanvasSpec {
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STROKES` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const STROKES: u32 = 32;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERVAL_NS` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const INTERVAL_NS: u64 = 4_166_667;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAST_SAMPLE` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const LAST_SAMPLE: u32 = 120;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const COLOR: [u8; 4] = [26, 199, 232, 255];
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BRUSH` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const BRUSH: BrushPreset = BrushPreset {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample` is never used
[INFO] [stdout]   --> apps/desktop/src/performance_workload.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn sample(stroke: u32, index: u32) -> StylusSample {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `nyatidraw-diagnostics`
[INFO] [stderr]   --> crates/editor/Cargo.toml:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | nyatidraw-diagnostics.workspace = true
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `nyatidraw-diagnostics`
[INFO] [stderr] warning: `nyatidraw-editor` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 44s
[INFO] running `Command { std: "docker" "inspect" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3", kill_on_drop: false }`
[INFO] [stdout] e9d27df01707ab4ab5028caee3acfe522ab69dd5e6abebe40eb9d6367f37b1a3
