[INFO] cloning repository https://github.com/Amnibro/Amni-Browse [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Amnibro/Amni-Browse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmnibro%2FAmni-Browse", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmnibro%2FAmni-Browse'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] de9965392e229b3c18c8aabfcee266c910634ff4 [INFO] checking Amnibro/Amni-Browse against try#5f6abd89da253a562ad85d235b9342a3ac336c28 for pr-156114-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmnibro%2FAmni-Browse" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Amnibro/Amni-Browse [INFO] finished tweaking git repo https://github.com/Amnibro/Amni-Browse [INFO] tweaked toml for git repo https://github.com/Amnibro/Amni-Browse written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Amnibro/Amni-Browse on toolchain 5f6abd89da253a562ad85d235b9342a3ac336c28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Amnibro/Amni-Browse 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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/servo/servo.git` [ERROR] error running command: no output for 300 seconds [INFO] checking Amnibro/Amni-Browse against try#5f6abd89da253a562ad85d235b9342a3ac336c28 for pr-156114-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmnibro%2FAmni-Browse" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Amnibro/Amni-Browse [INFO] finished tweaking git repo https://github.com/Amnibro/Amni-Browse [INFO] tweaked toml for git repo https://github.com/Amnibro/Amni-Browse written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Amnibro/Amni-Browse on toolchain 5f6abd89da253a562ad85d235b9342a3ac336c28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Amnibro/Amni-Browse 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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/servo/servo.git` [ERROR] error running command: no output for 300 seconds [INFO] checking Amnibro/Amni-Browse against try#5f6abd89da253a562ad85d235b9342a3ac336c28 for pr-156114-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmnibro%2FAmni-Browse" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Amnibro/Amni-Browse [INFO] finished tweaking git repo https://github.com/Amnibro/Amni-Browse [INFO] tweaked toml for git repo https://github.com/Amnibro/Amni-Browse written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Amnibro/Amni-Browse on toolchain 5f6abd89da253a562ad85d235b9342a3ac336c28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Amnibro/Amni-Browse 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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/servo/stylo` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded windows-version v0.1.7 [INFO] [stderr] Downloaded webview2-com v0.33.0 [INFO] [stderr] Downloaded build-parallel v0.1.2 [INFO] [stderr] Downloaded phf_generator v0.11.3 [INFO] [stderr] Downloaded field-offset v0.3.6 [INFO] [stderr] Downloaded objc2-quartz-core v0.3.2 [INFO] [stderr] Downloaded etagere v0.2.15 [INFO] [stderr] Downloaded wry v0.46.3 [INFO] [stderr] Downloaded wit-bindgen-rust-macro v0.51.0 [INFO] [stderr] Downloaded strum v0.28.0 [INFO] [stderr] Downloaded icu_provider_macros v1.5.0 [INFO] [stderr] Downloaded tao-macros v0.1.3 [INFO] [stderr] Downloaded zeroize_derive v1.4.3 [INFO] [stderr] Downloaded fxhash v0.2.1 [INFO] [stderr] Downloaded convert_case v0.4.0 [INFO] [stderr] Downloaded string_cache_codegen v0.5.4 [INFO] [stderr] Downloaded phf_shared v0.8.0 [INFO] [stderr] Downloaded rand_pcg v0.2.1 [INFO] [stderr] Downloaded matches v0.1.10 [INFO] [stderr] Downloaded zerovec-derive v0.10.3 [INFO] [stderr] Downloaded yoke-derive v0.7.5 [INFO] [stderr] Downloaded futures-macro v0.3.32 [INFO] [stderr] Downloaded thin-slice v0.1.1 [INFO] [stderr] Downloaded leb128fmt v0.1.0 [INFO] [stderr] Downloaded strum_macros v0.28.0 [INFO] [stderr] Downloaded tinystr v0.7.6 [INFO] [stderr] Downloaded nodrop v0.1.14 [INFO] [stderr] Downloaded phf_macros v0.8.0 [INFO] [stderr] Downloaded writeable v0.5.5 [INFO] [stderr] Downloaded toml_datetime v0.6.3 [INFO] [stderr] Downloaded pango-sys v0.18.0 [INFO] [stderr] Downloaded proc-macro-crate v3.5.0 [INFO] [stderr] Downloaded soup3-sys v0.5.0 [INFO] [stderr] Downloaded gobject-sys v0.18.0 [INFO] [stderr] Downloaded phf_shared v0.11.3 [INFO] [stderr] Downloaded dwrote v0.11.5 [INFO] [stderr] Downloaded yoke v0.7.5 [INFO] [stderr] Downloaded atk v0.18.2 [INFO] [stderr] Downloaded wit-bindgen-core v0.51.0 [INFO] [stderr] Downloaded proc-macro-crate v2.0.2 [INFO] [stderr] Downloaded cssparser-macros v0.6.1 [INFO] [stderr] Downloaded smallbitvec v2.6.0 [INFO] [stderr] Downloaded icu_provider v1.5.0 [INFO] [stderr] Downloaded icu_locid v1.5.0 [INFO] [stderr] Downloaded version-compare v0.2.1 [INFO] [stderr] Downloaded mac v0.1.1 [INFO] [stderr] Downloaded siphasher v1.0.2 [INFO] [stderr] Downloaded unic-ucd-ident v0.9.0 [INFO] [stderr] Downloaded xmlwriter v0.1.0 [INFO] [stderr] Downloaded noop_proc_macro v0.3.0 [INFO] [stderr] Downloaded unic-char-property v0.9.0 [INFO] [stderr] Downloaded id-arena v2.3.0 [INFO] [stderr] Downloaded phf_codegen v0.8.0 [INFO] [stderr] Downloaded phf_generator v0.8.0 [INFO] [stderr] Downloaded phf v0.8.0 [INFO] [stderr] Downloaded dtoa-short v0.3.5 [INFO] [stderr] Downloaded gdk-pixbuf-sys v0.18.0 [INFO] [stderr] Downloaded gtk3-macros v0.18.2 [INFO] [stderr] Downloaded wasm-metadata v0.244.0 [INFO] [stderr] Downloaded pico-args v0.5.0 [INFO] [stderr] Downloaded aligned-vec v0.6.4 [INFO] [stderr] Downloaded javascriptcore-rs-sys v1.1.1 [INFO] [stderr] Downloaded javascriptcore-rs v1.1.2 [INFO] [stderr] Downloaded equator-macro v0.4.2 [INFO] [stderr] Downloaded maybe-rayon v0.1.1 [INFO] [stderr] Downloaded interpolate_name v0.2.4 [INFO] [stderr] Downloaded webview2-com-macros v0.8.1 [INFO] [stderr] Downloaded unic-common v0.9.0 [INFO] [stderr] Downloaded unic-char-range v0.9.0 [INFO] [stderr] Downloaded enumn v0.1.14 [INFO] [stderr] Downloaded color_quant v1.1.0 [INFO] [stderr] Downloaded embedded-io v0.4.0 [INFO] [stderr] Downloaded imagesize v0.13.0 [INFO] [stderr] Downloaded cobs v0.3.0 [INFO] [stderr] Downloaded itoa v0.4.8 [INFO] [stderr] Downloaded futf v0.1.5 [INFO] [stderr] Downloaded dlib v0.5.3 [INFO] [stderr] Downloaded serde_spanned v0.6.9 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded accountable-refcell v0.2.2 [INFO] [stderr] Downloaded target-lexicon v0.12.16 [INFO] [stderr] Downloaded cairo-sys-rs v0.18.2 [INFO] [stderr] Downloaded proc-macro-error-attr v1.0.4 [INFO] [stderr] Downloaded system-deps v6.2.2 [INFO] [stderr] Downloaded proc-macro-error v1.0.4 [INFO] [stderr] Downloaded servo_arc v0.1.1 [INFO] [stderr] Downloaded dtoa v1.0.11 [INFO] [stderr] Downloaded tikv-jemallocator v0.6.1 [INFO] [stderr] Downloaded unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Downloaded gdk-pixbuf v0.18.5 [INFO] [stderr] Downloaded proc-macro-hack v0.5.20+deprecated [INFO] [stderr] Downloaded equator v0.4.2 [INFO] [stderr] Downloaded phf_shared v0.10.0 [INFO] [stderr] Downloaded core_maths v0.1.1 [INFO] [stderr] Downloaded web_atoms v0.2.3 [INFO] [stderr] Downloaded atomic_refcell v0.1.13 [INFO] [stderr] Downloaded atk-sys v0.18.2 [INFO] [stderr] Downloaded soup3 v0.5.0 [INFO] [stderr] Downloaded futures-executor v0.3.32 [INFO] [stderr] Downloaded zmij v1.0.21 [INFO] [stderr] Downloaded toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Downloaded range-alloc v0.1.5 [INFO] [stderr] Downloaded urlpattern v0.3.0 [INFO] [stderr] Downloaded simd_helpers v0.1.0 [INFO] [stderr] Downloaded objc2-web-kit v0.2.2 [INFO] [stderr] Downloaded wit-bindgen-rust v0.51.0 [INFO] [stderr] Downloaded derive_more v0.99.20 [INFO] [stderr] Downloaded cssparser v0.27.2 [INFO] [stderr] Downloaded webpki-roots v0.26.11 [INFO] [stderr] Downloaded kuchikiki v0.8.2 [INFO] [stderr] Downloaded dlopen2_derive v0.4.3 [INFO] [stderr] Downloaded unic-ucd-version v0.9.0 [INFO] [stderr] Downloaded unicode-vo v0.1.0 [INFO] [stderr] Downloaded webkit2gtk-sys v2.0.1 [INFO] [stderr] Downloaded cfg-expr v0.15.8 [INFO] [stderr] Downloaded markup5ever v0.11.0 [INFO] [stderr] Downloaded tendril v0.4.3 [INFO] [stderr] Downloaded unicode-script v0.5.8 [INFO] [stderr] Downloaded mach2 v0.6.0 [INFO] [stderr] Downloaded accesskit v0.24.0 [INFO] [stderr] Downloaded webdriver v0.53.0 [INFO] [stderr] Downloaded zune-core v0.5.1 [INFO] [stderr] Downloaded ravif v0.13.0 [INFO] [stderr] Downloaded phf_macros v0.13.1 [INFO] [stderr] Downloaded simplecss v0.2.2 [INFO] [stderr] Downloaded data-url v0.3.2 [INFO] [stderr] Downloaded rgb v0.8.53 [INFO] [stderr] Downloaded embedded-io v0.6.1 [INFO] [stderr] Downloaded rustc-demangle v0.1.27 [INFO] [stderr] Downloaded addr2line v0.25.1 [INFO] [stderr] Downloaded bitflags v2.11.0 [INFO] [stderr] Downloaded cairo-rs v0.18.5 [INFO] [stderr] Downloaded toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Downloaded selectors v0.22.0 [INFO] [stderr] Downloaded html5ever v0.26.0 [INFO] [stderr] Downloaded com v0.6.0 [INFO] [stderr] Downloaded d3d12 v22.0.0 [INFO] [stderr] Downloaded dlopen2 v0.7.0 [INFO] [stderr] Downloaded extended v0.1.0 [INFO] [stderr] Downloaded servo-display-link v0.2.0 [INFO] [stderr] Downloaded time-point v0.1.1 [INFO] [stderr] Downloaded zeitstempel v0.1.2 [INFO] [stderr] Downloaded uluru v3.1.0 [INFO] [stderr] Downloaded grid v1.0.0 [INFO] [stderr] Downloaded unicode-ccc v0.4.0 [INFO] [stderr] Downloaded glib-macros v0.18.5 [INFO] [stderr] Downloaded leak v0.1.2 [INFO] [stderr] Downloaded wr_malloc_size_of v0.2.2 [INFO] [stderr] Downloaded deranged v0.5.8 [INFO] [stderr] Downloaded phf_codegen v0.11.3 [INFO] [stderr] Downloaded block2 v0.6.2 [INFO] [stderr] Downloaded objc2-core-video v0.3.2 [INFO] [stderr] Downloaded litemap v0.7.5 [INFO] [stderr] Downloaded icu_collections v1.5.0 [INFO] [stderr] Downloaded svgtypes v0.15.3 [INFO] [stderr] Downloaded postcard v1.1.3 [INFO] [stderr] Downloaded content-security-policy v0.8.0 [INFO] [stderr] Downloaded built v0.8.0 [INFO] [stderr] Downloaded bitstream-io v4.10.0 [INFO] [stderr] Downloaded no_std_io2 v0.9.3 [INFO] [stderr] Downloaded toml v0.8.2 [INFO] [stderr] Downloaded glib-sys v0.18.1 [INFO] [stderr] Downloaded gdk-sys v0.18.2 [INFO] [stderr] Downloaded pango v0.18.3 [INFO] [stderr] Downloaded cc v1.2.57 [INFO] [stderr] Downloaded prettyplease v0.2.37 [INFO] [stderr] Downloaded toml_edit v0.25.4+spec-1.1.0 [INFO] [stderr] Downloaded wayland-backend v0.3.14 [INFO] [stderr] Downloaded freetype v0.7.2 [INFO] [stderr] Downloaded env_logger v0.11.9 [INFO] [stderr] Downloaded pollster v0.4.0 [INFO] [stderr] Downloaded pbkdf2 v0.12.2 [INFO] [stderr] Downloaded nohash-hasher v0.2.0 [INFO] [stderr] Downloaded toml_edit v0.20.2 [INFO] [stderr] Downloaded gio-sys v0.18.1 [INFO] [stderr] Downloaded webkit2gtk v2.0.1 [INFO] [stderr] Downloaded zerocopy-derive v0.8.42 [INFO] [stderr] Downloaded wgpu-types v22.0.0 [INFO] [stderr] Downloaded ron v0.10.1 [INFO] [stderr] Downloaded gdk v0.18.2 [INFO] [stderr] Downloaded symphonia-codec-aac v0.5.5 [INFO] [stderr] Downloaded servo_arc v0.4.3 [INFO] [stderr] Downloaded markup5ever_rcdom v0.38.0+unofficial [INFO] [stderr] Downloaded jni-sys v0.4.1 [INFO] [stderr] Downloaded dispatch2 v0.3.1 [INFO] [stderr] Downloaded thin-vec v0.2.14 [INFO] [stderr] Downloaded cssparser v0.36.0 [INFO] [stderr] Downloaded image-webp v0.2.4 [INFO] [stderr] Downloaded v_frame v0.3.9 [INFO] [stderr] Downloaded gtk-sys v0.18.2 [INFO] [stderr] Downloaded x11 v2.21.0 [INFO] [stderr] Downloaded gstreamer-app-sys v0.25.0 [INFO] [stderr] Downloaded phf v0.11.3 [INFO] [stderr] Downloaded zerovec v0.10.4 [INFO] [stderr] Downloaded resvg v0.45.1 [INFO] [stderr] Downloaded gif v0.13.3 [INFO] [stderr] Downloaded keyboard-types v0.8.3 [INFO] [stderr] Downloaded ryu v1.0.23 [INFO] [stderr] Downloaded num-rational v0.4.2 [INFO] [stderr] Downloaded avif-serialize v0.8.8 [INFO] [stderr] Downloaded windows-registry v0.6.1 [INFO] [stderr] Downloaded system-configuration v0.7.0 [INFO] [stderr] Downloaded system-configuration-sys v0.6.0 [INFO] [stderr] Downloaded fixedbitset v0.1.9 [INFO] [stderr] Downloaded byte-slice-cast v1.2.3 [INFO] [stderr] Downloaded curve25519-dalek-derive v0.1.1 [INFO] [stderr] Downloaded write16 v1.0.0 [INFO] [stderr] Downloaded wasm-encoder v0.244.0 [INFO] [stderr] Downloaded wayland-protocols-plasma v0.3.11 [INFO] [stderr] Downloaded unicode-segmentation v1.13.2 [INFO] [stderr] Downloaded bytemuck v1.25.0 [INFO] [stderr] Downloaded widestring v1.2.1 [INFO] [stderr] Downloaded symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Downloaded webrender_api v0.68.0 [INFO] [stderr] Downloaded rayon-core v1.13.0 [INFO] [stderr] Downloaded gstreamer-gl-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-gl v0.25.0 [INFO] [stderr] Downloaded vello_cpu v0.0.4 [INFO] [stderr] Downloaded toml v0.9.12+spec-1.1.0 [INFO] [stderr] Downloaded calloop v0.14.4 [INFO] [stderr] Downloaded boa_profiler v0.19.1 [INFO] [stderr] Downloaded boa_macros v0.19.1 [INFO] [stderr] Downloaded surfman v0.12.0 [INFO] [stderr] Downloaded backtrace v0.3.76 [INFO] [stderr] Downloaded zune-jpeg v0.5.13 [INFO] [stderr] Downloaded tiff v0.11.3 [INFO] [stderr] Downloaded av1-grain v0.2.5 [INFO] [stderr] Downloaded as-slice v0.2.1 [INFO] [stderr] Downloaded loop9 v0.1.5 [INFO] [stderr] Downloaded yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Downloaded ocb3 v0.1.0 [INFO] [stderr] Downloaded textnonce v1.0.0 [INFO] [stderr] Downloaded wit-parser v0.244.0 [INFO] [stderr] Downloaded bumpalo v3.20.2 [INFO] [stderr] Downloaded usvg v0.45.1 [INFO] [stderr] Downloaded kurbo v0.11.3 [INFO] [stderr] Downloaded fontdb v0.23.0 [INFO] [stderr] Downloaded ipc-channel v0.21.0 [INFO] [stderr] Downloaded imgref v1.12.0 [INFO] [stderr] Downloaded tar v0.4.45 [INFO] [stderr] Downloaded icu_timezone_data v1.5.1 [INFO] [stderr] Downloaded icu_normalizer v1.5.0 [INFO] [stderr] Downloaded xml v1.2.1 [INFO] [stderr] Downloaded poly1305 v0.8.0 [INFO] [stderr] Downloaded epaint v0.29.1 [INFO] [stderr] Downloaded glow v0.17.0 [INFO] [stderr] Downloaded taffy v0.10.1 [INFO] [stderr] Downloaded icu_timezone v1.5.0 [INFO] [stderr] Downloaded zerotrie v0.1.3 [INFO] [stderr] Downloaded tungstenite v0.29.0 [INFO] [stderr] Downloaded hashbrown v0.17.0 [INFO] [stderr] Downloaded gio v0.18.4 [INFO] [stderr] Downloaded wit-component v0.244.0 [INFO] [stderr] Downloaded hashbrown v0.15.5 [INFO] [stderr] Downloaded winnow v0.7.15 [INFO] [stderr] Downloaded webpki-roots v1.0.6 [INFO] [stderr] Downloaded foreign-types-shared v0.1.1 [INFO] [stderr] Downloaded smithay-client-toolkit v0.20.0 [INFO] [stderr] Downloaded boa_parser v0.19.1 [INFO] [stderr] Downloaded objc2 v0.6.4 [INFO] [stderr] Downloaded png v0.18.1 [INFO] [stderr] Downloaded icu_decimal v1.5.0 [INFO] [stderr] Downloaded encoding_c_mem v0.2.6 [INFO] [stderr] Downloaded encoding_c v0.9.8 [INFO] [stderr] Downloaded glob v0.3.3 [INFO] [stderr] Downloaded p256 v0.13.2 [INFO] [stderr] Downloaded rustls-platform-verifier v0.6.2 [INFO] [stderr] Downloaded async-compression v0.4.41 [INFO] [stderr] Downloaded compression-core v0.4.31 [INFO] [stderr] Downloaded glib v0.18.5 [INFO] [stderr] Downloaded wasmparser v0.244.0 [INFO] [stderr] Downloaded zerocopy v0.8.42 [INFO] [stderr] Downloaded pin-project-internal v1.1.11 [INFO] [stderr] Downloaded sha1_smol v1.0.1 [INFO] [stderr] Downloaded r-efi v6.0.0 [INFO] [stderr] Downloaded aws-lc-rs v1.16.1 [INFO] [stderr] Downloaded wio v0.2.2 [INFO] [stderr] Downloaded wayland-sys v0.30.1 [INFO] [stderr] Downloaded foreign-types v0.3.2 [INFO] [stderr] Downloaded gstreamer-app v0.25.0 [INFO] [stderr] Downloaded jni v0.22.3 [INFO] [stderr] Downloaded simdutf8 v0.1.5 [INFO] [stderr] Downloaded objc2-metal v0.3.2 [INFO] [stderr] Downloaded rustybuzz v0.20.1 [INFO] [stderr] Downloaded object v0.37.3 [INFO] [stderr] Downloaded gimli v0.32.3 [INFO] [stderr] Downloaded image v0.25.10 [INFO] [stderr] Downloaded headers-core v0.3.0 [INFO] [stderr] Downloaded inventory v0.3.24 [INFO] [stderr] Downloaded kurbo v0.12.0 [INFO] [stderr] Downloaded icu_decimal_data v1.5.1 [INFO] [stderr] Downloaded foldhash v0.2.0 [INFO] [stderr] Downloaded hyper-rustls v0.27.7 [INFO] [stderr] Downloaded option-operations v0.6.1 [INFO] [stderr] Downloaded gtk v0.18.2 [INFO] [stderr] Downloaded phf_codegen v0.10.0 [INFO] [stderr] Downloaded phf_generator v0.10.0 [INFO] [stderr] Downloaded phf v0.10.1 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.114 [INFO] [stderr] Downloaded pin-project v1.1.11 [INFO] [stderr] Downloaded wgpu-hal v22.0.0 [INFO] [stderr] Downloaded bit-set v0.6.0 [INFO] [stderr] Downloaded bit-vec v0.7.0 [INFO] [stderr] Downloaded hassle-rs v0.11.0 [INFO] [stderr] Downloaded wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06 [INFO] [stderr] Downloaded tokio-macros v2.6.1 [INFO] [stderr] Downloaded rustls v0.23.37 [INFO] [stderr] Downloaded objc-foundation v0.1.1 [INFO] [stderr] Downloaded objc_id v0.1.1 [INFO] [stderr] Downloaded webbrowser v1.2.0 [INFO] [stderr] Downloaded egui v0.29.1 [INFO] [stderr] Downloaded boa_string v0.19.1 [INFO] [stderr] Downloaded icu_segmenter v1.5.0 [INFO] [stderr] Downloaded nom v8.0.0 [INFO] [stderr] Downloaded gif v0.14.1 [INFO] [stderr] Downloaded zune-inflate v0.2.54 [INFO] [stderr] Downloaded lebe v0.5.3 [INFO] [stderr] Downloaded bit_field v0.10.3 [INFO] [stderr] Downloaded headers v0.4.1 [INFO] [stderr] Downloaded cookie v0.18.1 [INFO] [stderr] Downloaded fixed_decimal v0.5.6 [INFO] [stderr] Downloaded p384 v0.13.1 [INFO] [stderr] Downloaded imsz v0.4.1 [INFO] [stderr] Downloaded futures v0.3.32 [INFO] [stderr] Downloaded async-tungstenite v0.34.0 [INFO] [stderr] Downloaded gstreamer-base-sys v0.25.0 [INFO] [stderr] Downloaded libc v0.2.183 [INFO] [stderr] Downloaded string_cache v0.8.9 [INFO] [stderr] Downloaded glib-macros v0.22.2 [INFO] [stderr] Downloaded gstreamer-gl-egl v0.25.0 [INFO] [stderr] Downloaded gstreamer-gl-egl-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-webrtc v0.25.0 [INFO] [stderr] Downloaded gstreamer-sdp-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-play v0.25.0 [INFO] [stderr] Downloaded gstreamer-play-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-audio-sys v0.25.0 [INFO] [stderr] Downloaded intrusive-collections v0.9.7 [INFO] [stderr] Downloaded fast-float v0.2.0 [INFO] [stderr] Downloaded moxcms v0.8.1 [INFO] [stderr] Downloaded bindgen v0.72.1 [INFO] [stderr] Downloaded glib-sys v0.22.3 [INFO] [stderr] Downloaded pastey v0.2.1 [INFO] [stderr] Downloaded muldiv v1.0.1 [INFO] [stderr] Downloaded gdkx11-sys v0.18.2 [INFO] [stderr] Downloaded wasm-bindgen v0.2.114 [INFO] [stderr] Downloaded gdkwayland-sys v0.18.2 [INFO] [stderr] Downloaded symphonia-core v0.5.5 [INFO] [stderr] Downloaded gio-sys v0.22.0 [INFO] [stderr] Downloaded gstreamer-webrtc-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-sdp v0.25.0 [INFO] [stderr] Downloaded gstreamer-audio v0.25.0 [INFO] [stderr] Downloaded jiff v0.2.23 [INFO] [stderr] Downloaded simd_cesu8 v1.1.1 [INFO] [stderr] Downloaded epaint_default_fonts v0.29.1 [INFO] [stderr] Downloaded tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 [INFO] [stderr] Downloaded exr v1.74.0 [INFO] [stderr] Downloaded filetime v0.2.27 [INFO] [stderr] Downloaded icu_locid_transform_data v1.5.1 [INFO] [stderr] Downloaded icu_provider_adapters v1.5.0 [INFO] [stderr] Downloaded security-framework-sys v2.17.0 [INFO] [stderr] Downloaded gstreamer-base v0.25.0 [INFO] [stderr] Downloaded gdkx11 v0.18.2 [INFO] [stderr] Downloaded core-graphics v0.24.0 [INFO] [stderr] Downloaded symphonia-metadata v0.5.5 [INFO] [stderr] Downloaded symphonia-format-riff v0.5.5 [INFO] [stderr] Downloaded mach2 v0.4.3 [INFO] [stderr] Downloaded leaky-cow v0.1.1 [INFO] [stderr] Downloaded y4m v0.8.0 [INFO] [stderr] Downloaded pastey v0.1.1 [INFO] [stderr] Downloaded icu_capi v1.5.0 [INFO] [stderr] Downloaded icu_locid_transform v1.5.0 [INFO] [stderr] Downloaded icu_calendar_data v1.5.1 [INFO] [stderr] Downloaded calendrical_calculations v0.1.3 [INFO] [stderr] Downloaded icu_properties_data v1.5.1 [INFO] [stderr] Downloaded icu_plurals v1.5.0 [INFO] [stderr] Downloaded cbc v0.1.2 [INFO] [stderr] Downloaded aes-kw v0.2.1 [INFO] [stderr] Downloaded webpki-root-certs v1.0.7 [INFO] [stderr] Downloaded gstreamer-sys v0.25.0 [INFO] [stderr] Downloaded gobject-sys v0.22.0 [INFO] [stderr] Downloaded gstreamer v0.25.1 [INFO] [stderr] Downloaded litrs v1.0.0 [INFO] [stderr] Downloaded uuid v1.23.1 [INFO] [stderr] Downloaded tokio v1.50.0 [INFO] [stderr] Downloaded instant v0.1.13 [INFO] [stderr] Downloaded core-graphics-types v0.2.0 [INFO] [stderr] Downloaded cocoa v0.26.1 [INFO] [stderr] Downloaded cocoa-foundation v0.2.1 [INFO] [stderr] Downloaded symphonia v0.5.5 [INFO] [stderr] Downloaded symphonia-codec-vorbis v0.5.5 [INFO] [stderr] Downloaded symphonia-utils-xiph v0.5.5 [INFO] [stderr] Downloaded symphonia-codec-pcm v0.5.5 [INFO] [stderr] Downloaded app_units v0.7.8 [INFO] [stderr] Downloaded kstring v2.0.2 [INFO] [stderr] Downloaded peniko v0.5.0 [INFO] [stderr] Downloaded linebender_resource_handle v0.1.1 [INFO] [stderr] Downloaded toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Downloaded emath v0.29.1 [INFO] [stderr] Downloaded boa_interner v0.19.1 [INFO] [stderr] Downloaded boa_gc v0.19.1 [INFO] [stderr] Downloaded arg_enum_proc_macro v0.3.4 [INFO] [stderr] Downloaded aligned v0.4.3 [INFO] [stderr] Downloaded openxr v0.20.0 [INFO] [stderr] Downloaded icu_calendar v1.5.2 [INFO] [stderr] Downloaded icu_properties v1.5.1 [INFO] [stderr] Downloaded icu_plurals_data v1.5.1 [INFO] [stderr] Downloaded ff v0.13.1 [INFO] [stderr] Downloaded ecdsa v0.16.9 [INFO] [stderr] Downloaded rfc6979 v0.4.0 [INFO] [stderr] Downloaded block-padding v0.3.3 [INFO] [stderr] Downloaded nom-rfc8288 v0.4.0 [INFO] [stderr] Downloaded kem v0.3.0-pre.0 [INFO] [stderr] Downloaded hybrid-array v0.2.3 [INFO] [stderr] Downloaded chacha20 v0.9.1 [INFO] [stderr] Downloaded security-framework v3.7.0 [INFO] [stderr] Downloaded profiling-procmacros v1.0.17 [INFO] [stderr] Downloaded objc_exception v0.1.2 [INFO] [stderr] Downloaded cfg_aliases v0.1.1 [INFO] [stderr] Downloaded com_macros v0.6.0 [INFO] [stderr] Downloaded com_macros_support v0.6.0 [INFO] [stderr] Downloaded gpu-allocator v0.26.0 [INFO] [stderr] Downloaded symphonia-bundle-flac v0.5.5 [INFO] [stderr] Downloaded io-surface v0.15.1 [INFO] [stderr] Downloaded cocoa v0.25.0 [INFO] [stderr] Downloaded vello_common v0.0.4 [INFO] [stderr] Downloaded wayland-protocols-experimental v20250721.0.1 [INFO] [stderr] Downloaded egui-wgpu v0.29.1 [INFO] [stderr] Downloaded crypto-bigint v0.5.5 [INFO] [stderr] Downloaded nom-language v0.1.0 [INFO] [stderr] Downloaded ml-kem v0.2.3 [INFO] [stderr] Downloaded ml-dsa v0.0.4 [INFO] [stderr] Downloaded hybrid-array v0.3.1 [INFO] [stderr] Downloaded rustls-platform-verifier-android v0.1.1 [INFO] [stderr] Downloaded winit v0.30.13 [INFO] [stderr] Downloaded windows-core v0.52.0 [INFO] [stderr] Downloaded euclid v0.22.14 [INFO] [stderr] Downloaded vswhom-sys v0.1.3 [INFO] [stderr] Downloaded jni-sys-macros v0.4.1 [INFO] [stderr] Downloaded smithay-clipboard v0.7.3 [INFO] [stderr] Downloaded wayland-protocols-misc v0.3.11 [INFO] [stderr] Downloaded calloop-wayland-source v0.4.1 [INFO] [stderr] Downloaded ecolor v0.29.1 [INFO] [stderr] Downloaded type-map v0.5.1 [INFO] [stderr] Downloaded sptr v0.3.2 [INFO] [stderr] Downloaded webrender_build v0.68.0 [INFO] [stderr] Downloaded rav1e v0.8.1 [INFO] [stderr] Downloaded pxfm v0.1.28 [INFO] [stderr] Downloaded inherent v1.0.13 [INFO] [stderr] Downloaded hashlink v0.10.0 [INFO] [stderr] Downloaded skrifa v0.37.0 [INFO] [stderr] Downloaded compression-codecs v0.4.37 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.114 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.114 [INFO] [stderr] Downloaded libredox v0.1.14 [INFO] [stderr] Downloaded profiling v1.0.17 [INFO] [stderr] Downloaded glow v0.13.1 [INFO] [stderr] Downloaded wgpu-core v22.1.0 [INFO] [stderr] Downloaded document-features v0.2.12 [INFO] [stderr] Downloaded surfman v0.9.8 [INFO] [stderr] Downloaded serde_bytes v0.11.19 [INFO] [stderr] Downloaded egui-winit v0.29.1 [INFO] [stderr] Downloaded jni-macros v0.22.2 [INFO] [stderr] Downloaded dirs v5.0.1 [INFO] [stderr] Downloaded dirs-sys v0.4.1 [INFO] [stderr] Downloaded tap v1.0.1 [INFO] [stderr] Downloaded ryu-js v1.0.2 [INFO] [stderr] Downloaded pollster v0.3.0 [INFO] [stderr] Downloaded plane-split v0.18.0 [INFO] [stderr] Downloaded font-types v0.10.1 [INFO] [stderr] Downloaded sea-query-rusqlite v0.8.0-rc.15 [INFO] [stderr] Downloaded utf16_iter v1.0.5 [INFO] [stderr] Downloaded rangemap v1.7.1 [INFO] [stderr] Downloaded wayland-scanner v0.31.9 [INFO] [stderr] Downloaded cocoa-foundation v0.1.2 [INFO] [stderr] Downloaded gaol v0.2.1 [INFO] [stderr] Downloaded env_filter v1.0.0 [INFO] [stderr] Downloaded boa_ast v0.19.1 [INFO] [stderr] Downloaded core-text v20.1.0 [INFO] [stderr] Downloaded av-scenechange v0.14.1 [INFO] [stderr] Downloaded rusqlite v0.37.0 [INFO] [stderr] Downloaded mime-multipart-hyper1 v0.10.0 [INFO] [stderr] Downloaded ohos-sys-opaque-types v0.1.9 [INFO] [stderr] Downloaded js-sys v0.3.91 [INFO] [stderr] Downloaded wayland-client v0.31.13 [INFO] [stderr] Downloaded orbclient v0.3.51 [INFO] [stderr] Downloaded phf_macros v0.11.3 [INFO] [stderr] Downloaded coreaudio-sys v0.2.17 [INFO] [stderr] Downloaded regress v0.10.5 [INFO] [stderr] Downloaded sea-query-derive v1.0.0-rc.12 [INFO] [stderr] Downloaded libz-sys v1.1.28 [INFO] [stderr] Downloaded icu_datetime v1.5.1 [INFO] [stderr] Downloaded ohos-window-sys v0.1.6 [INFO] [stderr] Downloaded quick-xml v0.39.2 [INFO] [stderr] Downloaded wayland-sys v0.31.10 [INFO] [stderr] Downloaded metal v0.24.0 [INFO] [stderr] Downloaded wr_glyph_rasterizer v0.68.0 [INFO] [stderr] Downloaded fallible-iterator v0.3.0 [INFO] [stderr] Downloaded petgraph v0.4.13 [INFO] [stderr] Downloaded swapper v0.1.0 [INFO] [stderr] Downloaded malloc_size_of_derive v0.1.3 [INFO] [stderr] Downloaded tracy-rs v0.1.2 [INFO] [stderr] Downloaded portable-atomic-util v0.2.5 [INFO] [stderr] Downloaded selectors v0.26.0 [INFO] [stderr] Downloaded cssparser v0.34.0 [INFO] [stderr] Downloaded topological-sort v0.1.0 [INFO] [stderr] Downloaded fallible-streaming-iterator v0.1.9 [INFO] [stderr] Downloaded ordermap v0.3.5 [INFO] [stderr] Downloaded xml5ever v0.39.0 [INFO] [stderr] Downloaded curve25519-dalek v4.1.3 [INFO] [stderr] Downloaded yuv v0.8.13 [INFO] [stderr] Downloaded wayland-protocols v0.32.11 [INFO] [stderr] Downloaded wayland-protocols-wlr v0.3.11 [INFO] [stderr] Downloaded wayland-cursor v0.31.13 [INFO] [stderr] Downloaded float-cmp v0.9.0 [INFO] [stderr] Downloaded redox_syscall v0.7.3 [INFO] [stderr] Downloaded naga v22.1.0 [INFO] [stderr] Downloaded peek-poke v0.3.0 [INFO] [stderr] Downloaded rayon v1.12.0 [INFO] [stderr] Downloaded color v0.3.2 [INFO] [stderr] Downloaded jiff-static v0.2.23 [INFO] [stderr] Downloaded tokio-native-tls v0.3.1 [INFO] [stderr] Downloaded x25519-dalek v2.0.1 [INFO] [stderr] Downloaded icu_list v1.5.0 [INFO] [stderr] Downloaded icu_experimental_data v0.1.1 [INFO] [stderr] Downloaded objc2-core-text v0.3.2 [INFO] [stderr] Downloaded schannel v0.1.29 [INFO] [stderr] Downloaded fst v0.4.7 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.64 [INFO] [stderr] Downloaded peek-poke-derive v0.3.0 [INFO] [stderr] Downloaded fearless_simd v0.3.0 [INFO] [stderr] Downloaded openxr-sys v0.12.0 [INFO] [stderr] Downloaded read-fonts v0.35.0 [INFO] [stderr] Downloaded icu_normalizer_data v1.5.1 [INFO] [stderr] Downloaded tower-http v0.6.8 [INFO] [stderr] Downloaded iri-string v0.7.10 [INFO] [stderr] Downloaded sea-query v1.0.0-rc.31 [INFO] [stderr] Downloaded speexdsp-resampler v0.1.0 [INFO] [stderr] Downloaded mozjs v0.15.8 [INFO] [stderr] Downloaded icu_list_data v1.5.1 [INFO] [stderr] Downloaded icu_pattern v0.2.0 [INFO] [stderr] Downloaded lru v0.16.4 [INFO] [stderr] Downloaded reqwest v0.12.28 [INFO] [stderr] Downloaded diplomat-runtime v0.8.3 [INFO] [stderr] Downloaded diplomat v0.8.0 [INFO] [stderr] Downloaded gleam v0.15.1 [INFO] [stderr] Downloaded icu_casemap v1.5.1 [INFO] [stderr] Downloaded web-sys v0.3.91 [INFO] [stderr] Downloaded openssl-sys v0.9.112 [INFO] [stderr] Downloaded boa_engine v0.19.1 [INFO] [stderr] Downloaded icu_experimental v0.1.0 [INFO] [stderr] Downloaded ohos-media-sys v0.0.5 [INFO] [stderr] Downloaded openssl v0.10.76 [INFO] [stderr] Downloaded fiat-crypto v0.2.9 [INFO] [stderr] Downloaded icu_casemap_data v1.5.1 [INFO] [stderr] Downloaded glib v0.22.5 [INFO] [stderr] Downloaded hyper-tls v0.6.0 [INFO] [stderr] Downloaded markup5ever v0.38.0 [INFO] [stderr] Downloaded webrender v0.68.0 [INFO] [stderr] Downloaded vswhom v0.1.0 [INFO] [stderr] Downloaded regex-automata v0.2.0 [INFO] [stderr] Downloaded strck_ident v0.1.2 [INFO] [stderr] Downloaded sec1 v0.7.3 [INFO] [stderr] Downloaded buf-read-ext v0.4.0 [INFO] [stderr] Downloaded quick_cache v0.6.21 [INFO] [stderr] Downloaded xml5ever v0.38.0 [INFO] [stderr] Downloaded keyboard-types v0.7.0 [INFO] [stderr] Downloaded embed-resource v3.0.6 [INFO] [stderr] Downloaded winreg v0.55.0 [INFO] [stderr] Downloaded fontsan-woff2 v0.1.1 [INFO] [stderr] Downloaded html5ever v0.38.0 [INFO] [stderr] Downloaded icu_segmenter_data v1.5.1 [INFO] [stderr] Downloaded keccak v0.1.6 [INFO] [stderr] Downloaded elliptic-curve v0.13.8 [INFO] [stderr] Downloaded memmap2 v0.9.10 [INFO] [stderr] Downloaded strck v0.1.2 [INFO] [stderr] Downloaded primeorder v0.13.6 [INFO] [stderr] Downloaded fontdue v0.9.3 [INFO] [stderr] Downloaded diplomat_core v0.8.1 [INFO] [stderr] Downloaded base16ct v0.2.0 [INFO] [stderr] Downloaded gstreamer-video-sys v0.25.0 [INFO] [stderr] Downloaded chacha20poly1305 v0.10.1 [INFO] [stderr] Downloaded gstreamer-video v0.25.0 [INFO] [stderr] Downloaded toml v1.0.6+spec-1.1.0 [INFO] [stderr] Downloaded der_derive v0.7.3 [INFO] [stderr] Downloaded toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Downloaded cfg-expr v0.20.7 [INFO] [stderr] Downloaded native-tls v0.2.18 [INFO] [stderr] Downloaded fontsan v0.6.1 [INFO] [stderr] Downloaded chardetng v0.1.17 [INFO] [stderr] Downloaded glslopt v0.1.12 [INFO] [stderr] Downloaded wgpu v22.1.0 [INFO] [stderr] Downloaded openssl-macros v0.1.1 [INFO] [stderr] Downloaded icu_collator_data v1.5.1 [INFO] [stderr] Downloaded serde_spanned v1.0.4 [INFO] [stderr] Downloaded system-deps v7.0.8 [INFO] [stderr] Downloaded target-lexicon v0.13.3 [INFO] [stderr] Downloaded group v0.13.0 [INFO] [stderr] Downloaded p521 v0.13.3 [INFO] [stderr] Downloaded chrono v0.4.44 [INFO] [stderr] Downloaded metal v0.29.0 [INFO] [stderr] Downloaded icu_collator v1.5.0 [INFO] [stderr] Downloaded tao v0.30.8 [INFO] [stderr] Downloaded mozangle v0.5.5 [INFO] [stderr] Downloaded freetype-sys v0.20.1 [INFO] [stderr] Downloaded harfbuzz-sys v0.6.1 [INFO] [stderr] Downloaded webview2-com-sys v0.33.0 [INFO] [stderr] Downloaded icu_datetime_data v1.5.1 [INFO] [stderr] Downloaded libsqlite3-sys v0.35.0 [INFO] [stderr] Downloaded windows v0.61.3 [INFO] [stderr] Downloaded aws-lc-sys v0.38.0 [INFO] [stderr] Downloaded windows v0.52.0 [INFO] [stderr] Downloaded mozjs_sys v0.140.8-3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6ac0f4f182457e482fedb79b9034abd33b7059ec89cd6cc2de174ed5445fcedf [INFO] running `Command { std: "docker" "start" "-a" "6ac0f4f182457e482fedb79b9034abd33b7059ec89cd6cc2de174ed5445fcedf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6ac0f4f182457e482fedb79b9034abd33b7059ec89cd6cc2de174ed5445fcedf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ac0f4f182457e482fedb79b9034abd33b7059ec89cd6cc2de174ed5445fcedf", kill_on_drop: false }` [INFO] [stdout] 6ac0f4f182457e482fedb79b9034abd33b7059ec89cd6cc2de174ed5445fcedf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 821af67c603411a5eec16bd889aaa2dcbe20053f55c811d43b701206612aa8a9 [INFO] running `Command { std: "docker" "start" "-a" "821af67c603411a5eec16bd889aaa2dcbe20053f55c811d43b701206612aa8a9", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling target-lexicon v0.12.16 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling version-compare v0.2.1 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Checking bytes v1.11.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling cfg-expr v0.15.8 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling gio v0.18.4 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Checking writeable v0.6.2 [INFO] [stderr] Checking litemap v0.8.1 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking socket2 v0.6.3 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling aws-lc-rs v1.16.1 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Compiling field-offset v0.3.6 [INFO] [stderr] Compiling x11 v2.21.0 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking openssl-probe v0.2.1 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling gtk v0.18.2 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Compiling web_atoms v0.2.3 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Checking tendril v0.5.0 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Checking adler2 v2.0.1 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Checking ipnet v2.12.0 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Compiling slotmap v1.1.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Checking dtoa v1.0.11 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking anstyle-parse v0.2.7 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Compiling aws-lc-sys v0.38.0 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling toml_datetime v0.6.3 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking webpki-roots v1.0.6 [INFO] [stderr] Compiling toml_edit v0.20.2 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking anstyle v1.0.14 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking anstyle-query v1.1.5 [INFO] [stderr] Checking weezl v0.1.12 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking pxfm v0.1.28 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Checking is_terminal_polyfill v1.70.2 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Compiling wry v0.46.3 [INFO] [stderr] Checking iri-string v0.7.10 [INFO] [stderr] Checking colorchoice v1.0.5 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking zune-core v0.5.1 [INFO] [stderr] Checking base64ct v1.8.3 [INFO] [stderr] Checking zune-jpeg v0.5.13 [INFO] [stderr] Checking image-webp v0.2.4 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Compiling toml v0.9.12+spec-1.1.0 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking gif v0.14.1 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Compiling toml v0.8.2 [INFO] [stderr] Compiling proc-macro-crate v2.0.2 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling system-deps v6.2.2 [INFO] [stderr] Compiling embed-resource v3.0.6 [INFO] [stderr] Checking rustls-native-certs v0.8.3 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking servo_arc v0.4.3 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking iana-time-zone v0.1.65 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Compiling amni-browse v0.7.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `PathBuf`, `Path`, `env`, and `fs` [INFO] [stdout] --> build.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs, path::{Path, PathBuf}}; [INFO] [stdout] | ^^^ ^^ ^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking grid v0.15.0 [INFO] [stderr] Checking jiff v0.2.23 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking uuid v1.23.1 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking taffy v0.7.7 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [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] Compiling gdk-sys v0.18.2 [INFO] [stderr] Compiling glib-macros v0.18.5 [INFO] [stderr] Compiling pango-sys v0.18.0 [INFO] [stderr] Compiling cairo-sys-rs v0.18.2 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.18.0 [INFO] [stderr] Compiling atk-sys v0.18.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling gtk-sys v0.18.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling javascriptcore-rs-sys v1.1.1 [INFO] [stderr] Compiling soup3-sys v0.5.0 [INFO] [stderr] Compiling webkit2gtk-sys v2.0.1 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Compiling gdkx11-sys v0.18.2 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling gtk3-macros v0.18.2 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling dlopen2_derive v0.4.3 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking dlopen2 v0.7.0 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking cssparser v0.34.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking gdkwayland-sys v0.18.2 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking glib v0.18.5 [INFO] [stderr] Checking string_cache v0.9.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking markup5ever v0.38.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking xml5ever v0.38.0 [INFO] [stderr] Checking html5ever v0.38.0 [INFO] [stderr] Checking markup5ever_rcdom v0.38.0+unofficial [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking hyper v1.9.0 [INFO] [stderr] Checking hyper-util v0.1.20 [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 hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking rustls-webpki v0.103.9 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking pango v0.18.3 [INFO] [stderr] Checking gdk-pixbuf v0.18.5 [INFO] [stderr] Checking soup3 v0.5.0 [INFO] [stderr] Checking gdk v0.18.2 [INFO] [stderr] Checking gdkx11 v0.18.2 [INFO] [stderr] Checking webkit2gtk v2.0.1 [INFO] [stderr] Checking tao v0.30.8 [INFO] [stdout] warning: unused imports: `AudioInfo`, `AudioTrack`, and `PlaybackState` [INFO] [stdout] --> src/media/mod.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | pub use audio::{AudioEngine, AudioTrack, PlaybackState, AudioInfo}; [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 imports: `VideoState` and `VideoTrack` [INFO] [stdout] --> src/media/mod.rs:8:30 [INFO] [stdout] | [INFO] [stdout] 8 | pub use video::{VideoEngine, VideoTrack, VideoState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `engine::adblocker::AdBlocker` [INFO] [stdout] --> src/platform/webview.rs:8:150 [INFO] [stdout] | [INFO] [stdout] 8 | ...age, IpcMessage, IpcResponse}, ui::webview as spa, engine::adblocker::AdBlocker}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CspDirective` [INFO] [stdout] --> src/engine/pipeline.rs:4:36 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::net::csp::{CspEnforcer, CspDirective}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instruction` [INFO] [stdout] --> src/engine/ir_executor.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use super::amni_ir::{Instruction, Opcode, Operands, IrProgram}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Instruction` and `IrBuilder` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:5:33 [INFO] [stdout] | [INFO] [stdout] 5 | use super::amni_ir::{IrProgram, IrBuilder, Instruction}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LayoutRect` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:77:43 [INFO] [stdout] | [INFO] [stdout] 77 | use super::layout::{LayoutEngine, LayoutRect}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JsEvalResult` [INFO] [stdout] --> src/engine/js_bridge.rs:1:28 [INFO] [stdout] | [INFO] [stdout] 1 | use super::js::{JsRuntime, JsEvalResult}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/engine/inline_layout.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | use super::style::{ComputedStyle, Display, TextAlign}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `markup5ever_rcdom::NodeData` [INFO] [stdout] --> src/engine/inline_layout.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | use markup5ever_rcdom::NodeData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AudioInfo`, `AudioTrack`, and `PlaybackState` [INFO] [stdout] --> src/media/mod.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | pub use audio::{AudioEngine, AudioTrack, PlaybackState, AudioInfo}; [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 imports: `VideoState` and `VideoTrack` [INFO] [stdout] --> src/media/mod.rs:8:30 [INFO] [stdout] | [INFO] [stdout] 8 | pub use video::{VideoEngine, VideoTrack, VideoState}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `engine::adblocker::AdBlocker` [INFO] [stdout] --> src/platform/webview.rs:8:150 [INFO] [stdout] | [INFO] [stdout] 8 | ...age, IpcMessage, IpcResponse}, ui::webview as spa, engine::adblocker::AdBlocker}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CspDirective` [INFO] [stdout] --> src/engine/pipeline.rs:4:36 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::net::csp::{CspEnforcer, CspDirective}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instruction` [INFO] [stdout] --> src/engine/ir_executor.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use super::amni_ir::{Instruction, Opcode, Operands, IrProgram}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Instruction` and `IrBuilder` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:5:33 [INFO] [stdout] | [INFO] [stdout] 5 | use super::amni_ir::{IrProgram, IrBuilder, Instruction}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LayoutRect` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:77:43 [INFO] [stdout] | [INFO] [stdout] 77 | use super::layout::{LayoutEngine, LayoutRect}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JsEvalResult` [INFO] [stdout] --> src/engine/js_bridge.rs:1:28 [INFO] [stdout] | [INFO] [stdout] 1 | use super::js::{JsRuntime, JsEvalResult}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/engine/inline_layout.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | use super::style::{ComputedStyle, Display, TextAlign}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `markup5ever_rcdom::NodeData` [INFO] [stdout] --> src/engine/inline_layout.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | use markup5ever_rcdom::NodeData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/storage/downloads.rs:113:26 [INFO] [stdout] | [INFO] [stdout] 113 | fn download_blocking(id: &str, url: &str, path: &PathBuf) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/storage/downloads.rs:113:26 [INFO] [stdout] | [INFO] [stdout] 113 | fn download_blocking(id: &str, url: &str, path: &PathBuf) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> src/engine/text.rs:103:30 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn char_width(&self, ch: char, font_size: f32) -> f32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture_id` [INFO] [stdout] --> src/engine/ir_executor.rs:230:63 [INFO] [stdout] | [INFO] [stdout] 230 | if let Operands::PaintImage { x, y, w, h, texture_id } = &inst.operands { [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `texture_id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `encoded` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | let encoded = base17::encode_bytes(html.as_bytes()); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoded` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> src/engine/text.rs:103:30 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn char_width(&self, ch: char, font_size: f32) -> f32 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture_id` [INFO] [stdout] --> src/engine/ir_executor.rs:230:63 [INFO] [stdout] | [INFO] [stdout] 230 | if let Operands::PaintImage { x, y, w, h, texture_id } = &inst.operands { [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `texture_id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `extraction_js` and `settings_json` are never used [INFO] [stdout] --> src/ui/reader.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl ReaderMode { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn extraction_js() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn settings_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CUSTOM` is never used [INFO] [stdout] --> src/ui/emoji.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | static CUSTOM: LazyLock>> = LazyLock::new(|| std::sync::RwLock::new(HashMap::new())); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register` is never used [INFO] [stdout] --> src/ui/emoji.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn register(name: String, glyph: String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve` is never used [INFO] [stdout] --> src/ui/emoji.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn resolve(name: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve_html` is never used [INFO] [stdout] --> src/ui/emoji.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn resolve_html(name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `all_names` is never used [INFO] [stdout] --> src/ui/emoji.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn all_names() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `query` is never read [INFO] [stdout] --> src/net/ipc.rs:100:18 [INFO] [stdout] | [INFO] [stdout] 100 | FindInPage { query: String }, [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IpcMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SessionInfo`, `ReaderSettingsResp`, `PermissionsDefaults`, `DevToolsConsole`, `DevToolsNetwork`, and `DrmWebViewRequired` are never constructed [INFO] [stdout] --> src/net/ipc.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 202 | pub enum IpcResponse { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 236 | SessionInfo { data: String }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | ReaderSettingsResp { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 250 | PermissionsDefaults { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | DevToolsConsole { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 257 | #[serde(rename = "devtools_network")] [INFO] [stdout] 258 | DevToolsNetwork { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | DrmWebViewRequired { url: String, reason: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpcResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cached_at_epoch` is never read [INFO] [stdout] --> src/net/dns.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DnsRecord { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | pub cached_at_epoch: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DnsRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `url` and `name` are never used [INFO] [stdout] --> src/net/dns.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl DohProvider { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 22 | pub fn url(&self) -> &str { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn name(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DnsAnswer` is never constructed [INFO] [stdout] --> src/net/dns.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct DnsAnswer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DnsResponse` is never constructed [INFO] [stdout] --> src/net/dns.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct DnsResponse { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `last_clean` is never read [INFO] [stdout] --> src/net/dns.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 58 | pub struct DohResolver { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 62 | last_clean: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `resolve`, `query_doh`, `clean_cache`, and `clear_cache` are never used [INFO] [stdout] --> src/net/dns.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl DohResolver { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn resolve(&mut self, hostname: &str) -> Option> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn query_doh(&self, hostname: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | fn clean_cache(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn clear_cache(&mut self) { self.cache.clear(); } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `block_3pc` and `default_auth` are never read [INFO] [stdout] --> src/net/http.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct AmniClient { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | block_3pc: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 28 | user_agent: String, [INFO] [stdout] 29 | default_auth: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `url` and `from_cache` are never read [INFO] [stdout] --> src/net/http.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct AmniResponse { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 35 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 36 | pub from_cache: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/net/http.rs:88:18 [INFO] [stdout] | [INFO] [stdout] 38 | impl AmniClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn post(&self, url: &str, content_type: &str, body: Bytes) -> Result usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_dnt(&mut self, enabled: bool) { self.dnt = enabled; } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 133 | pub fn set_block_3pc(&mut self, enabled: bool) { self.block_3pc = enabled; } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub async fn put(&self, url: &str, content_type: &str, body: Bytes) -> Result Result> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub async fn patch(&self, url: &str, content_type: &str, body: Bytes) -> Result Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub async fn options(&self, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn request(&self, url: &str) -> AmniRequestBuilder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub fn set_bearer_token(&mut self, token: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn set_basic_auth(&mut self, user: &str, pass: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AmniRequestBuilder` is never constructed [INFO] [stdout] --> src/net/http.rs:291:12 [INFO] [stdout] | [INFO] [stdout] 291 | pub struct AmniRequestBuilder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `method`, `header`, `body`, `timeout`, and `send` are never used [INFO] [stdout] --> src/net/http.rs:302:12 [INFO] [stdout] | [INFO] [stdout] 300 | impl<'a> AmniRequestBuilder<'a> { [INFO] [stdout] | ------------------------------- methods in this implementation [INFO] [stdout] 301 | /// Set the HTTP method (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS). [INFO] [stdout] 302 | pub fn method(mut self, method: &str) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn header(mut self, key: &str, value: &str) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn body(mut self, data: Vec) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn timeout(mut self, duration: Duration) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub async fn send(self) -> Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `header`, `content_type`, `is_json`, `is_html`, `json`, and `is_ok` are never used [INFO] [stdout] --> src/net/http.rs:361:12 [INFO] [stdout] | [INFO] [stdout] 355 | impl AmniResponse { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 361 | pub fn header(&self, name: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn content_type(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn is_json(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | pub fn is_html(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | pub fn json(&self) -> Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn is_ok(&self) -> bool { self.status >= 200 && self.status < 300 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/cookies.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl CookieJar { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn clear_domain(&mut self, domain: &str) { self.cookies.remove(domain); } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 59 | pub fn clear_all(&mut self) { self.cookies.clear(); info!("All cookies cleared"); } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 60 | pub fn domain_count(&self) -> usize { self.cookies.len() } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 61 | pub fn total_count(&self) -> usize { self.cookies.values().map(|v| v.len()).sum() } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 62 | pub fn set_block_third_party(&mut self, block: bool) { self.block_third_party = block; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 63 | pub fn add_allow(&mut self, domain: String) { self.allow_list.push(domain); } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | pub fn add_deny(&mut self, domain: String) { self.deny_list.push(domain); } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn save(&self) -> String { serde_json::to_string(&self.cookies).unwrap_or_default() } [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | pub fn load(data: &str, block_third_party: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `BoxErr` is never used [INFO] [stdout] --> src/net/websocket.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type BoxErr = Box; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WebSocketState` is never used [INFO] [stdout] --> src/net/websocket.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum WebSocketState { Connecting, Open, Closing, Closed } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebSocketFrame` is never constructed [INFO] [stdout] --> src/net/websocket.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct WebSocketFrame { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/websocket.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 17 | impl WebSocketFrame { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub const TEXT: u8 = 1; [INFO] [stdout] | ^^^^ [INFO] [stdout] 19 | pub const BINARY: u8 = 2; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | pub const CLOSE: u8 = 8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | pub const PING: u8 = 9; [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | pub const PONG: u8 = 10; [INFO] [stdout] | ^^^^ [INFO] [stdout] 23 | pub fn text(msg: &str) -> Self { Self { opcode: Self::TEXT, payload: msg.as_bytes().to_vec(), fin: true } } [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | pub fn binary(data: &[u8]) -> Self { Self { opcode: Self::BINARY, payload: data.to_vec(), fin: true } } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | pub fn close() -> Self { Self { opcode: Self::CLOSE, payload: Vec::new(), fin: true } } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 26 | pub fn ping() -> Self { Self { opcode: Self::PING, payload: Vec::new(), fin: true } } [INFO] [stdout] | ^^^^ [INFO] [stdout] 27 | pub fn pong(payload: Vec) -> Self { Self { opcode: Self::PONG, payload, fin: true } } [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | pub fn encode_masked(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn encode_unmasked(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_frame` is never used [INFO] [stdout] --> src/net/websocket.rs:67:14 [INFO] [stdout] | [INFO] [stdout] 67 | pub async fn decode_frame(reader: &mut R) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ws_url` is never used [INFO] [stdout] --> src/net/websocket.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn parse_ws_url(url: &str) -> Result<(String, u16, String, bool), BoxErr> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_ws_key` is never used [INFO] [stdout] --> src/net/websocket.rs:110:4 [INFO] [stdout] | [INFO] [stdout] 110 | fn generate_ws_key() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebSocket` is never constructed [INFO] [stdout] --> src/net/websocket.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct WebSocket { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `connect`, `send_text`, `send_binary`, `send_ping`, `close`, and `recv` are never used [INFO] [stdout] --> src/net/websocket.rs:121:18 [INFO] [stdout] | [INFO] [stdout] 120 | impl WebSocket { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 121 | pub async fn connect(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub async fn send_text(&self, msg: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub async fn send_binary(&self, data: &[u8]) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub async fn send_ping(&self) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub async fn close(&mut self) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub async fn recv(&mut self) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebSocketManager` is never constructed [INFO] [stdout] --> src/net/websocket.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub struct WebSocketManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/websocket.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 226 | impl WebSocketManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 227 | pub fn new() -> Self { Self { connections: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 228 | pub async fn create(&mut self, id: &str, url: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub async fn close(&mut self, id: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub async fn send(&self, id: &str, msg: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub async fn recv(&mut self, id: &str) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn state(&self, id: &str) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn ids(&self) -> Vec { self.connections.keys().cloned().collect() } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RequestType` is never used [INFO] [stdout] --> src/net/cors.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum RequestType { Simple, Preflight, Actual } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `allowed_origins`, `allowed_methods`, `allowed_headers`, `max_age`, and `allow_credentials` are never read [INFO] [stdout] --> src/net/cors.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct CorsConfig { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 7 | pub allowed_origins: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | pub allowed_methods: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | pub allowed_headers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | pub max_age: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | pub allow_credentials: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CorsConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CorsResult` is never constructed [INFO] [stdout] --> src/net/cors.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct CorsResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_simple_method` is never used [INFO] [stdout] --> src/net/cors.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn is_simple_method(method: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_simple_header` is never used [INFO] [stdout] --> src/net/cors.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn is_simple_header(name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_simple_content_type` is never used [INFO] [stdout] --> src/net/cors.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn is_simple_content_type(value: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `classify_request` is never used [INFO] [stdout] --> src/net/cors.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn classify_request(method: &str, headers: &[(String, String)], origin: Option<&str>) -> RequestType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PreflightRequest` is never constructed [INFO] [stdout] --> src/net/cors.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub struct PreflightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_preflight_request` is never used [INFO] [stdout] --> src/net/cors.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn build_preflight_request(url: &str, method: &str, request_headers: &[(String, String)], origin: &str) -> PreflightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_response` is never used [INFO] [stdout] --> src/net/cors.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn validate_response(origin: &str, response_headers: &[(String, String)]) -> CorsResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_method_allowed` is never used [INFO] [stdout] --> src/net/cors.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn check_method_allowed(method: &str, response_headers: &[(String, String)]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_headers_allowed` is never used [INFO] [stdout] --> src/net/cors.rs:98:8 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn check_headers_allowed(request_headers: &[(String, String)], response_headers: &[(String, String)]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `allowed_methods`, `allowed_headers`, `inserted`, and `max_age` are never read [INFO] [stdout] --> src/net/cors.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 111 | struct CorsEntry { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 112 | allowed_methods: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 113 | allowed_headers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 114 | inserted: Instant, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 115 | max_age: Duration, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CorsEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `entries` is never read [INFO] [stdout] --> src/net/cors.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CorsCache { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 118 | entries: HashMap<(String, String), CorsEntry>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check`, `store`, `evict_expired`, and `clear` are never used [INFO] [stdout] --> src/net/cors.rs:122:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl CorsCache { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 121 | pub fn new() -> Self { Self { entries: HashMap::new() } } [INFO] [stdout] 122 | pub fn check(&self, origin: &str, url: &str) -> Option<(&[String], &[String])> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn store(&mut self, origin: &str, url: &str, response_headers: &[(String, String)]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn evict_expired(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn clear(&mut self) { self.entries.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `cache` are never read [INFO] [stdout] --> src/net/cors.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct CorsEnforcer { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 153 | pub config: CorsConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 154 | pub cache: CorsCache, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `should_allow` is never used [INFO] [stdout] --> src/net/cors.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl CorsEnforcer { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn should_allow(&self, origin: &str, url: &str, method: &str, headers: &[(String, String)]) -> CorsResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `allows_inline_script`, `allows_inline_style`, and `allows_eval` are never used [INFO] [stdout] --> src/net/csp.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl CspPolicy { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn allows_inline_script(&self, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn allows_inline_style(&self, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn allows_eval(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `report` is never read [INFO] [stdout] --> src/net/csp.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 181 | pub struct CspResult { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 182 | pub allowed: bool, [INFO] [stdout] 183 | pub report: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `directive`, `blocked_uri`, and `document_uri` are never read [INFO] [stdout] --> src/net/csp.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct CspViolation { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 187 | pub directive: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 188 | pub blocked_uri: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 189 | pub document_uri: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspViolation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check_inline_script`, `check_inline_style`, and `check_eval` are never used [INFO] [stdout] --> src/net/csp.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl CspEnforcer { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn check_inline_script(&self, nonce: Option<&str>) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn check_inline_style(&self, nonce: Option<&str>) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | pub fn check_eval(&self) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_AGENT` is never used [INFO] [stdout] --> src/storage/config.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const USER_AGENT: &str = "AmniBrowse/0.3 (Privacy-First; Amni-Scient)"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `find_by_url`, `list_folder`, and `search` are never used [INFO] [stdout] --> src/storage/bookmarks.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl BookmarkManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn find_by_url(&self, url: &str) -> Option<&Bookmark> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn list_folder(&self, folder: Option<&str>) -> Vec<&Bookmark> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn search(&self, query: &str) -> Vec<&Bookmark> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_by_date`, `delete_by_url`, `clear_range`, and `to_json` are never used [INFO] [stdout] --> src/storage/history.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl HistoryManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn get_by_date(&self, date: NaiveDate) -> Vec<&HistoryEntry> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn delete_by_url(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn clear_range(&mut self, from: DateTime, to: DateTime) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_json` is never used [INFO] [stdout] --> src/storage/session.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl SessionManager { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `progress_pct` is never used [INFO] [stdout] --> src/storage/downloads.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl DownloadItem { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn progress_pct(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `search_credentials` is never used [INFO] [stdout] --> src/crypto/vault.rs:252:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl PasswordManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn search_credentials(&self, query: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `list_addresses` and `decrypt_card_number` are never used [INFO] [stdout] --> src/crypto/autofill.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl AutofillManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn list_addresses(&self) -> &[AddressProfile] { &self.store.addresses } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn decrypt_card_number(&self, card_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `audio`, `video`, `codec_registry`, and `stream_manager` are never read [INFO] [stdout] --> src/media/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct MediaManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 11 | pub audio: AudioEngine, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub video: VideoEngine, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | pub codec_registry: codecs::CodecRegistry, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | pub stream_manager: stream::MediaStreamManager, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `stop_all`, `is_media_url`, and `capabilities_json` are never used [INFO] [stdout] --> src/media/mod.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl MediaManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn stop_all(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn is_media_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn capabilities_json() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Stopped`, `Playing`, and `Paused` are never constructed [INFO] [stdout] --> src/media/audio.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum PlaybackState { Stopped, Playing, Paused } [INFO] [stdout] | ------------- ^^^^^^^ ^^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `PlaybackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/media/audio.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct AudioTrack { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 9 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | pub state: PlaybackState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | pub duration_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 12 | pub position_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 13 | pub volume: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | pub muted: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AudioTrack` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tracks`, `master_volume`, and `master_muted` are never read [INFO] [stdout] --> src/media/audio.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct AudioEngine { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 18 | tracks: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | master_volume: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 20 | master_muted: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/media/audio.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl AudioEngine { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn load_track(&mut self, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn play(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn pause(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn stop(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn seek(&mut self, id: &str, position_secs: f64) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn set_volume(&mut self, id: &str, volume: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn set_muted(&mut self, id: &str, muted: bool) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn set_master_volume(&mut self, vol: f32) { self.master_volume = vol.clamp(0.0, 1.0); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 101 | pub fn set_master_muted(&mut self, muted: bool) { self.master_muted = muted; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 102 | pub fn master_volume(&self) -> f32 { self.master_volume } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 103 | pub fn master_muted(&self) -> bool { self.master_muted } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 104 | [INFO] [stdout] 105 | pub fn get_track(&self, id: &str) -> Option<&AudioTrack> { self.tracks.get(id) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | pub fn remove_track(&mut self, id: &str) { self.stop(id); self.tracks.remove(id); } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 107 | pub fn active_tracks(&self) -> Vec<&AudioTrack> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn start_playback(&self, _id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn decode_audio_info(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn is_available() -> bool { cfg!(feature = "media-playback") } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AudioInfo` is never constructed [INFO] [stdout] --> src/media/audio.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct AudioInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Idle`, `Loading`, `Playing`, `Paused`, `Ended`, and `Error` are never constructed [INFO] [stdout] --> src/media/video.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum VideoState { Idle, Loading, Playing, Paused, Ended, Error(String) } [INFO] [stdout] | ---------- ^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `VideoState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/media/video.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct VideoTrack { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 9 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | pub state: VideoState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | pub duration_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 14 | pub position_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 15 | pub volume: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | pub muted: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | pub frame_data: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VideoTrack` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tracks` is never read [INFO] [stdout] --> src/media/video.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct VideoEngine { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 21 | tracks: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/media/video.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl VideoEngine { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn load_track(&mut self, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn play(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn pause(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn stop(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn seek(&mut self, id: &str, pos: f64) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_volume(&mut self, id: &str, vol: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn set_muted(&mut self, id: &str, muted: bool) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_track(&self, id: &str) -> Option<&VideoTrack> { self.tracks.get(id) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 69 | [INFO] [stdout] 70 | pub fn remove_track(&mut self, id: &str) { self.tracks.remove(id); } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 71 | [INFO] [stdout] 72 | pub fn extract_poster_frame(data: &[u8]) -> Option<(u32, u32, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn supported_containers() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn is_video_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `codec_type`, `name`, `mime_type`, and `supported` are never read [INFO] [stdout] --> src/media/codecs.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct CodecProfile { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 6 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 7 | pub codec_type: CodecType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 9 | pub mime_type: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 10 | pub supported: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CodecProfile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `codecs` is never read [INFO] [stdout] --> src/media/codecs.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct CodecRegistry { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 14 | pub codecs: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_type_supported`, `can_play_type`, `list_video_codecs`, and `list_audio_codecs` are never used [INFO] [stdout] --> src/media/codecs.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl CodecRegistry { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn is_type_supported(&self, mime: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn can_play_type(&self, mime: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn list_video_codecs(&self) -> Vec<&CodecProfile> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn list_audio_codecs(&self) -> Vec<&CodecProfile> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Audio` and `Video` are never constructed [INFO] [stdout] --> src/media/stream.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum TrackKind { Audio, Video } [INFO] [stdout] | --------- ^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `TrackKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Live` and `Ended` are never constructed [INFO] [stdout] --> src/media/stream.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TrackState { Live, Ended } [INFO] [stdout] | ---------- ^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `TrackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DeviceKind` is never used [INFO] [stdout] --> src/media/stream.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum DeviceKind { AudioInput, AudioOutput, VideoInput } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `kind`, `label`, `enabled`, `muted`, and `ready_state` are never read [INFO] [stdout] --> src/media/stream.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct MediaStreamTrack { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 14 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 15 | pub kind: TrackKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 18 | pub muted: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | pub ready_state: TrackState, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MediaStreamTrack` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `tracks` are never read [INFO] [stdout] --> src/media/stream.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct MediaStream { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 24 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 25 | pub tracks: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MediaStream` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediaDeviceInfo` is never constructed [INFO] [stdout] --> src/media/stream.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct MediaDeviceInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `streams` is never read [INFO] [stdout] --> src/media/stream.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct MediaStreamManager { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 37 | pub streams: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/media/stream.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl MediaStreamManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn create_stream(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn add_track(&mut self, stream_id: &str, kind: TrackKind, label: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn remove_track(&mut self, stream_id: &str, track_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get_stream(&self, id: &str) -> Option<&MediaStream> { self.streams.get(id) } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 68 | [INFO] [stdout] 69 | pub fn get_user_media(&mut self, audio: bool, video: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_display_media(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn stop_stream(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn enumerate_devices(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MediaSourceState` is never used [INFO] [stdout] --> src/media/mse.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MediaSourceState { Closed, Open, Ended } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AppendMode` is never used [INFO] [stdout] --> src/media/mse.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum AppendMode { Segments, Sequence } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SourceBuffer` is never constructed [INFO] [stdout] --> src/media/mse.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SourceBuffer { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `append_buffer`, `abort`, `remove`, `buffered_duration`, `finish_update`, and `merge_ranges` are never used [INFO] [stdout] --> src/media/mse.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl SourceBuffer { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 21 | pub fn append_buffer(&mut self, data: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn abort(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn remove(&mut self, start: f64, end: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn buffered_duration(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn finish_update(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn merge_ranges(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediaSource` is never constructed [INFO] [stdout] --> src/media/mse.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct MediaSource { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_source_buffer`, `remove_source_buffer`, `end_of_stream`, `set_duration`, and `active_source_buffers` are never used [INFO] [stdout] --> src/media/mse.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 82 | impl MediaSource { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 83 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn add_source_buffer(&mut self, mime_type: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn remove_source_buffer(&mut self, index: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn end_of_stream(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn set_duration(&mut self, duration: f64) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn active_source_buffers(&self) -> Vec<&SourceBuffer> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MseManager` is never constructed [INFO] [stdout] --> src/media/mse.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | pub struct MseManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/media/mse.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 136 | impl MseManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 137 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn create_source(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn get_source(&self, id: &str) -> Option<&MediaSource> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn get_source_mut(&mut self, id: &str) -> Option<&mut MediaSource> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn attach_to_video(&mut self, source_id: &str, video_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn detach(&mut self, source_id: &str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn is_type_supported(mime: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `private_tab_count` and `has_private_tabs` are never used [INFO] [stdout] --> src/engine/tabs.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 109 | impl TabManager { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn private_tab_count(&self) -> usize { self.tabs.iter().filter(|t| t.is_private).count() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 161 | pub fn has_private_tabs(&self) -> bool { self.tabs.iter().any(|t| t.is_private) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `BLOCKED_DOMAINS` is never used [INFO] [stdout] --> src/engine/adblocker.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | static BLOCKED_DOMAINS: LazyLock> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `AD_PATTERNS` is never used [INFO] [stdout] --> src/engine/adblocker.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | static AD_PATTERNS: LazyLock> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tracker_blocking` is never read [INFO] [stdout] --> src/engine/adblocker.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct AdBlocker { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 97 | pub enabled: bool, [INFO] [stdout] 98 | pub tracker_blocking: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdBlocker` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `should_block` and `is_blocked_url` are never used [INFO] [stdout] --> src/engine/adblocker.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl AdBlocker { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn should_block(&mut self, url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn is_blocked_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `install_from_dir`, `copy_dir_recursive`, `get_content_scripts`, `url_matches_pattern`, and `list` are never used [INFO] [stdout] --> src/engine/extensions.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl ExtensionManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn install_from_dir(&mut self, source: &PathBuf) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | fn copy_dir_recursive(src: &PathBuf, dst: &PathBuf) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_content_scripts(&self, url: &str) -> Vec<(String, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | fn url_matches_pattern(url: &str, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn list(&self) -> &[Extension] { &self.registry.extensions } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_permission`, `reset_all`, and `defaults_json` are never used [INFO] [stdout] --> src/engine/permissions.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl PermissionsManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_permission(&self, url: &str, perm: &PermissionType) -> PermissionState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn reset_all(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn defaults_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `log_network`, `console_json`, and `network_json` are never used [INFO] [stdout] --> src/engine/devtools.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl DevToolsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn log_network(&mut self, entry: NetworkEntry) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn console_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn network_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomNode` is never constructed [INFO] [stdout] --> src/engine/dom.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DomNode<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `encoded` [INFO] [stdout] --> src/engine/shunt_sandbox.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | let encoded = base17::encode_bytes(html.as_bytes()); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoded` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/dom.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl AmniDom { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn root(&self) -> &Handle { &self.dom.document } [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn query_by_tag(&self, tag: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn find_by_tag(&self, handle: &Handle, tag: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn query_by_id(&self, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | fn find_by_id(&self, handle: &Handle, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn query_selector(&self, selector: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn query_selector_all(&self, selector: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn query_by_class(&self, class: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn query_by_attr(&self, attr: &str, value: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 241 | fn find_first_simple(&self, handle: &Handle, sel: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | fn find_all_simple(&self, handle: &Handle, sel: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn matches_simple(handle: &Handle, sel: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | fn find_by_class(&self, handle: &Handle, class: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | fn find_by_attr_val(&self, handle: &Handle, attr: &str, value: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TextInfo` is never constructed [INFO] [stdout] --> src/engine/layout.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TextInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LayoutEngine` is never constructed [INFO] [stdout] --> src/engine/layout.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct LayoutEngine { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x`, `y`, `w`, and `h` are never read [INFO] [stdout] --> src/engine/layout.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct LayoutRect { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 19 | pub x: f32, [INFO] [stdout] | ^ [INFO] [stdout] 20 | pub y: f32, [INFO] [stdout] | ^ [INFO] [stdout] 21 | pub w: f32, [INFO] [stdout] | ^ [INFO] [stdout] 22 | pub h: f32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `LayoutRect` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/layout.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl LayoutEngine { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 25 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn add_node(&mut self, id: usize, style: &ComputedStyle, children: &[usize]) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn add_leaf(&mut self, id: usize, style: &ComputedStyle) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn add_leaf_with_text(&mut self, id: usize, style: &ComputedStyle, text: TextInfo) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn compute(&mut self, root_id: usize, viewport_w: f32, viewport_h: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | fn collect_results(&mut self, id: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn collect_all(&mut self, ids: &[usize]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_layout(&self, id: usize) -> Option<&LayoutRect> { self.results.get(&id) } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 84 | pub fn clear(&mut self) { self.tree.clear(); self.nodes.clear(); self.results.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | fn to_taffy_style(cs: &ComputedStyle) -> Style { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn dim_to_taffy(d: &super::style::Dimension) -> taffy::Dimension { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StyleSheet` is never constructed [INFO] [stdout] --> src/engine/style.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct StyleSheet { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StyleRule` is never constructed [INFO] [stdout] --> src/engine/style.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct StyleRule { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Declaration` is never constructed [INFO] [stdout] --> src/engine/style.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Declaration { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ComputedStyle` is never constructed [INFO] [stdout] --> src/engine/style.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct ComputedStyle { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Display` is never used [INFO] [stdout] --> src/engine/style.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum Display { #[default] Block, Inline, Flex, Grid, InlineBlock, InlineFlex, None, Contents } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Position` is never used [INFO] [stdout] --> src/engine/style.rs:89:10 [INFO] [stdout] | [INFO] [stdout] 89 | pub enum Position { #[default] Static, Relative, Absolute, Fixed, Sticky } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Dimension` is never constructed [INFO] [stdout] --> src/engine/style.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | pub struct Dimension { pub value: f32, pub unit: DimUnit } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DimUnit` is never used [INFO] [stdout] --> src/engine/style.rs:93:10 [INFO] [stdout] | [INFO] [stdout] 93 | pub enum DimUnit { #[default] Auto, Px, Pct, Em, Rem, Vh, Vw } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Edges` is never constructed [INFO] [stdout] --> src/engine/style.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct Edges { pub top: f32, pub right: f32, pub bottom: f32, pub left: f32 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Color` is never constructed [INFO] [stdout] --> src/engine/style.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub struct Color { pub r: u8, pub g: u8, pub b: u8, pub a: f32 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TextAlign` is never used [INFO] [stdout] --> src/engine/style.rs:99:10 [INFO] [stdout] | [INFO] [stdout] 99 | pub enum TextAlign { #[default] Left, Center, Right, Justify } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Overflow` is never used [INFO] [stdout] --> src/engine/style.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | pub enum Overflow { #[default] Visible, Hidden, Scroll, Auto } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FlexDir` is never used [INFO] [stdout] --> src/engine/style.rs:103:10 [INFO] [stdout] | [INFO] [stdout] 103 | pub enum FlexDir { #[default] Row, Column, RowReverse, ColumnReverse } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BorderStyle` is never used [INFO] [stdout] --> src/engine/style.rs:105:10 [INFO] [stdout] | [INFO] [stdout] 105 | pub enum BorderStyle { #[default] None, Solid, Dashed, Dotted, Double, Groove, Ridge, Inset, Outset } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TextDecoration` is never used [INFO] [stdout] --> src/engine/style.rs:107:10 [INFO] [stdout] | [INFO] [stdout] 107 | pub enum TextDecoration { #[default] None, Underline, Overline, LineThrough } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TextTransform` is never used [INFO] [stdout] --> src/engine/style.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | pub enum TextTransform { #[default] None, Uppercase, Lowercase, Capitalize } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WhiteSpace` is never used [INFO] [stdout] --> src/engine/style.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | pub enum WhiteSpace { #[default] Normal, NoWrap, Pre, PreWrap, PreLine } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WordBreak` is never used [INFO] [stdout] --> src/engine/style.rs:113:10 [INFO] [stdout] | [INFO] [stdout] 113 | pub enum WordBreak { #[default] Normal, BreakAll, KeepAll } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Visibility` is never used [INFO] [stdout] --> src/engine/style.rs:115:10 [INFO] [stdout] | [INFO] [stdout] 115 | pub enum Visibility { #[default] Visible, Hidden, Collapse } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VerticalAlign` is never used [INFO] [stdout] --> src/engine/style.rs:117:10 [INFO] [stdout] | [INFO] [stdout] 117 | pub enum VerticalAlign { #[default] Baseline, Top, Middle, Bottom, TextTop, TextBottom } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FlexWrap` is never used [INFO] [stdout] --> src/engine/style.rs:119:10 [INFO] [stdout] | [INFO] [stdout] 119 | pub enum FlexWrap { #[default] NoWrap, Wrap, WrapReverse } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AlignItems` is never used [INFO] [stdout] --> src/engine/style.rs:121:10 [INFO] [stdout] | [INFO] [stdout] 121 | pub enum AlignItems { #[default] Stretch, FlexStart, FlexEnd, Center, Baseline } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `JustifyContent` is never used [INFO] [stdout] --> src/engine/style.rs:123:10 [INFO] [stdout] | [INFO] [stdout] 123 | pub enum JustifyContent { #[default] FlexStart, FlexEnd, Center, SpaceBetween, SpaceAround, SpaceEvenly } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AlignContent` is never used [INFO] [stdout] --> src/engine/style.rs:125:10 [INFO] [stdout] | [INFO] [stdout] 125 | pub enum AlignContent { #[default] Stretch, FlexStart, FlexEnd, Center, SpaceBetween, SpaceAround } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse`, `parse_rule`, and `parse_declaration` are never used [INFO] [stdout] --> src/engine/style.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 126 | impl StyleSheet { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] 127 | pub fn parse(css: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn parse_rule(parser: &mut Parser) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | fn parse_declaration(parser: &mut Parser) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/style.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 203 | impl ComputedStyle { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 204 | pub fn apply_declarations(&mut self, decls: &[Declaration]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 458 | fn parse_color(s: &str) -> Color { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 469 | fn parse_color_one(s: &str) -> Color { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 499 | fn parse_named_color(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 552 | fn parse_px(s: &str, default: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | fn parse_dim(s: &str) -> Dimension { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 567 | fn parse_edges(s: &str) -> (f32, f32, f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 579 | fn parse_border_style(s: &str) -> BorderStyle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `image_cache`, `cors`, `csp`, and `canvas_registry` are never read [INFO] [stdout] --> src/engine/pipeline.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct RenderPipeline { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | pub image_cache: ImageCache, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | pub cors: CorsEnforcer, [INFO] [stdout] | ^^^^ [INFO] [stdout] 20 | pub csp: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] 21 | pub canvas_registry: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `css_sources` is never read [INFO] [stdout] --> src/engine/pipeline.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PageResult { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub css_sources: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LayoutResult` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct LayoutResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/pipeline.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl RenderPipeline { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn parse_and_layout(html: &str, css_sources: &[&str], vw: f32, vh: f32) -> LayoutResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | fn build_tree(handle: &Handle, sheets: &[StyleSheet], engine: &mut LayoutEngine, styles: &mut HashMap, co... [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | fn apply_tag_font_defaults(tag: &str, cs: &mut ComputedStyle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | fn selector_matches(selectors: &[String], tag: &str, id: &str, classes: &[&str]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn render_to_semantic_html(html: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn extract_page_meta(html: &str) -> PageSummary { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub async fn execute_fetch_requests(&self, requests: Vec) -> Vec<(u32, u16, HashMap Result<(PageResult, LayoutResult), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | pub fn render_to_pixels(&mut self, html: &str, css_sources: &[&str], vw: f32, vh: f32) -> RenderedPage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub async fn fetch_and_render(&mut self, url: &str, vw: f32, vh: f32) -> Result<(PageResult, RenderedPage), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderedPage` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:374:12 [INFO] [stdout] | [INFO] [stdout] 374 | pub struct RenderedPage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `event_dispatcher`, `focus_manager`, `form_state`, `js_bridge`, and `current_layouts` are never read [INFO] [stdout] --> src/engine/pipeline.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 383 | pub struct PageInteractor { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 384 | pub event_dispatcher: EventDispatcher, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 385 | pub focus_manager: FocusManager, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 386 | pub form_state: FormState, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 387 | pub js_bridge: crate::engine::js_bridge::JsDomBridge, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 388 | pub current_layouts: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/pipeline.rs:400:12 [INFO] [stdout] | [INFO] [stdout] 390 | impl PageInteractor { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn dispatch_click(&mut self, x: f32, y: f32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | pub fn dispatch_key(&mut self, key: &str, code: u32, shift: bool, ctrl: bool, alt: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | pub fn focus_node(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn tab_focus_next(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 420 | pub fn submit_form(&self, form_id: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn set_page_origin(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 429 | pub fn drain_js_fetches(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_scripts` is never used [INFO] [stdout] --> src/engine/pipeline.rs:434:8 [INFO] [stdout] | [INFO] [stdout] 434 | pub fn extract_scripts(html: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_external_script_urls` is never used [INFO] [stdout] --> src/engine/pipeline.rs:441:8 [INFO] [stdout] | [INFO] [stdout] 441 | pub fn extract_external_script_urls(html: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_external_scripts` is never used [INFO] [stdout] --> src/engine/pipeline.rs:448:4 [INFO] [stdout] | [INFO] [stdout] 448 | fn collect_external_scripts(handle: &Handle, out: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_inline_scripts` is never used [INFO] [stdout] --> src/engine/pipeline.rs:460:4 [INFO] [stdout] | [INFO] [stdout] 460 | fn collect_inline_scripts(handle: &Handle, out: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PaintCommand` is never used [INFO] [stdout] --> src/engine/paint.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum PaintCommand { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PaintRect` is never constructed [INFO] [stdout] --> src/engine/paint.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct PaintRect { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DisplayList` is never constructed [INFO] [stdout] --> src/engine/paint.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct DisplayList { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `push` are never used [INFO] [stdout] --> src/engine/paint.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl DisplayList { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 42 | pub fn new(w: u32, h: u32) -> Self { Self { commands: Vec::new(), width: w, height: h } } [INFO] [stdout] | ^^^ [INFO] [stdout] 43 | pub fn push(&mut self, cmd: PaintCommand) { self.commands.push(cmd); } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderNode` is never constructed [INFO] [stdout] --> src/engine/paint.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct RenderNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderTree` is never constructed [INFO] [stdout] --> src/engine/paint.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct RenderTree { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `build_from_dom`, and `walk` are never used [INFO] [stdout] --> src/engine/paint.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl RenderTree { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] 62 | pub fn new() -> Self { Self { nodes: HashMap::new(), root_id: 0 } } [INFO] [stdout] | ^^^ [INFO] [stdout] 63 | [INFO] [stdout] 64 | pub fn build_from_dom(handle: &Handle, sheets: &[super::style::StyleSheet], counter: &mut usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn walk(handle: &Handle, sheets: &[super::style::StyleSheet], counter: &mut usize, tree: &mut RenderTree, hidden: bool, parent_c... [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_non_renderable_tag` is never used [INFO] [stdout] --> src/engine/paint.rs:127:4 [INFO] [stdout] | [INFO] [stdout] 127 | fn is_non_renderable_tag(tag: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_tag_defaults` is never used [INFO] [stdout] --> src/engine/paint.rs:131:4 [INFO] [stdout] | [INFO] [stdout] 131 | fn apply_tag_defaults(tag: &str, cs: &mut ComputedStyle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `selector_matches` is never used [INFO] [stdout] --> src/engine/paint.rs:146:4 [INFO] [stdout] | [INFO] [stdout] 146 | fn selector_matches(selectors: &[String], tag: &str, id: &str, classes: &[&str]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_display_list` is never used [INFO] [stdout] --> src/engine/paint.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn build_display_list( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `color_to_rgba` is never used [INFO] [stdout] --> src/engine/paint.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn color_to_rgba(c: &Color) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SoftwareRenderer` is never constructed [INFO] [stdout] --> src/engine/paint.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | pub struct SoftwareRenderer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/paint.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 231 | impl SoftwareRenderer { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 232 | pub fn new(width: u32, height: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | pub fn render(&mut self, dl: &DisplayList) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn is_clipped(&self, x: f32, y: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn set_pixel(&mut self, x: i32, y: i32, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | fn fill_rect(&mut self, rect: &PaintRect, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 336 | fn draw_text(&mut self, x: f32, y: f32, text: &str, font_size: f32, color: &[u8; 4], max_width: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 366 | fn draw_image(&mut self, rect: &PaintRect, rgba: &[u8], img_w: u32, img_h: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 388 | fn draw_border(&mut self, rect: &PaintRect, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | fn draw_play_icon(&mut self, rect: &PaintRect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn clear(&mut self, color: [u8; 4]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn render_with_resources(&mut self, dl: &DisplayList, canvases: &HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 468 | fn render_canvas(&mut self, rect: &PaintRect, canvas: &crate::engine::canvas::Canvas2D) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | fn render_svg(&mut self, rect: &PaintRect, svg_content: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 541 | pub fn pixels(&self) -> &[u8] { &self.pixels } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TextShaper` is never constructed [INFO] [stdout] --> src/engine/text.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct TextShaper { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShapedLine` is never constructed [INFO] [stdout] --> src/engine/text.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ShapedLine { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShapedText` is never constructed [INFO] [stdout] --> src/engine/text.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ShapedText { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `measure`, `layout_text`, and `char_width` are never used [INFO] [stdout] --> src/engine/text.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl TextShaper { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 23 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn measure(&self, text: &str, font_size: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn layout_text(&self, text: &str, font_size: f32, max_width: f32) -> ShapedText { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn char_width(&self, ch: char, font_size: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, and `rgba_data` are never read [INFO] [stdout] --> src/engine/image_decode.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CachedImage { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 4 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | pub rgba_data: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `entries` and `max_entries` are never read [INFO] [stdout] --> src/engine/image_decode.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ImageCache { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 10 | entries: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | max_entries: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/image_decode.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl ImageCache { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn decode_bytes(&mut self, url: &str, data: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn decode_and_resize(&mut self, url: &str, data: &[u8], max_dim: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get(&self, url: &str) -> Option<&CachedImage> { self.entries.get(url) } [INFO] [stdout] | ^^^ [INFO] [stdout] 51 | [INFO] [stdout] 52 | pub fn contains(&self, url: &str) -> bool { self.entries.contains_key(url) } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 53 | [INFO] [stdout] 54 | pub fn remove(&mut self, url: &str) { self.entries.remove(url); } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 55 | [INFO] [stdout] 56 | pub fn clear(&mut self) { self.entries.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 57 | [INFO] [stdout] 58 | pub fn len(&self) -> usize { self.entries.len() } [INFO] [stdout] | ^^^ [INFO] [stdout] 59 | [INFO] [stdout] 60 | pub fn decode_file(&mut self, path: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn create_solid_color(width: u32, height: u32, r: u8, g: u8, b: u8, a: u8) -> CachedImage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn supported_formats() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_format` is never used [INFO] [stdout] --> src/engine/image_decode.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn detect_format(data: &[u8]) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `console_log` and `globals` are never read [INFO] [stdout] --> src/engine/js.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct JsRuntime { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 8 | console_log: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 9 | globals: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `level`, `message`, and `timestamp` are never read [INFO] [stdout] --> src/engine/js.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ConsoleEntry { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 14 | pub level: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 15 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | pub timestamp: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConsoleEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsEvalResult` is never constructed [INFO] [stdout] --> src/engine/js.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct JsEvalResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `eval`, `eval_dom_script`, `drain_console`, `set_global`, `reset`, and `is_available` are never used [INFO] [stdout] --> src/engine/js.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl JsRuntime { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn eval(&mut self, script: &str) -> JsEvalResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn eval_dom_script(&mut self, script: &str, document_json: &str) -> JsEvalResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn drain_console(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn set_global(&mut self, name: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn is_available() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RADIX` is never used [INFO] [stdout] --> src/engine/base17.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const RADIX: u16 = 17; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PAIR_MAX` is never used [INFO] [stdout] --> src/engine/base17.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const PAIR_MAX: u16 = 289; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `META_START` is never used [INFO] [stdout] --> src/engine/base17.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const META_START: u16 = 256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STREAM_START` is never used [INFO] [stdout] --> src/engine/base17.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const STREAM_START: u16 = 256; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STREAM_END` is never used [INFO] [stdout] --> src/engine/base17.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const STREAM_END: u16 = 257; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHECKSUM` is never used [INFO] [stdout] --> src/engine/base17.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const CHECKSUM: u16 = 258; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEARTBEAT` is never used [INFO] [stdout] --> src/engine/base17.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const HEARTBEAT: u16 = 259; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ERROR_SLOT` is never used [INFO] [stdout] --> src/engine/base17.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const ERROR_SLOT: u16 = 260; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DIGITS` is never used [INFO] [stdout] --> src/engine/base17.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const DIGITS: [u8; 17] = *b"0123456789ABCDEFG"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVALID` is never used [INFO] [stdout] --> src/engine/base17.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const INVALID: u8 = 0xFF; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DECODE_TABLE` is never used [INFO] [stdout] --> src/engine/base17.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | static DECODE_TABLE: [u8; 128] = { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CodecError` is never used [INFO] [stdout] --> src/engine/base17.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 33 | pub enum CodecError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `digit_val` is never used [INFO] [stdout] --> src/engine/base17.rs:54:4 [INFO] [stdout] | [INFO] [stdout] 54 | fn digit_val(ch: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_byte` is never used [INFO] [stdout] --> src/engine/base17.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn encode_byte(b: u8) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_pair` is never used [INFO] [stdout] --> src/engine/base17.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn decode_pair(hi: u8, lo: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_meta` is never used [INFO] [stdout] --> src/engine/base17.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn encode_meta(slot: u16) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_bytes` is never used [INFO] [stdout] --> src/engine/base17.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn encode_bytes(data: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_bytes` is never used [INFO] [stdout] --> src/engine/base17.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn decode_bytes(sept: &[u8]) -> Result, CodecError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_varint` is never used [INFO] [stdout] --> src/engine/base17.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn encode_varint(val: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_varint` is never used [INFO] [stdout] --> src/engine/base17.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | pub fn decode_varint(sept: &[u8]) -> Result<(u64, usize), CodecError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_u16` is never used [INFO] [stdout] --> src/engine/base17.rs:141:8 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn encode_u16(v: u16) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_u16` is never used [INFO] [stdout] --> src/engine/base17.rs:149:8 [INFO] [stdout] | [INFO] [stdout] 149 | pub fn decode_u16(sept: &[u8]) -> Result<(u16, usize), CodecError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_u32` is never used [INFO] [stdout] --> src/engine/base17.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn encode_u32(v: u32) -> [u8; 8] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_u32` is never used [INFO] [stdout] --> src/engine/base17.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn decode_u32(sept: &[u8]) -> Result<(u32, usize), CodecError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_f32` is never used [INFO] [stdout] --> src/engine/base17.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | pub fn encode_f32(v: f32) -> [u8; 8] { encode_u32(v.to_bits()) } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_f32` is never used [INFO] [stdout] --> src/engine/base17.rs:178:8 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn decode_f32(sept: &[u8]) -> Result<(f32, usize), CodecError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_string` is never used [INFO] [stdout] --> src/engine/base17.rs:185:8 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn encode_string(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_string` is never used [INFO] [stdout] --> src/engine/base17.rs:194:8 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn decode_string(sept: &[u8]) -> Result<(String, usize), CodecError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Checksummer` is never constructed [INFO] [stdout] --> src/engine/base17.rs:205:12 [INFO] [stdout] | [INFO] [stdout] 205 | pub struct Checksummer { sum: u16 } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `feed`, `feed_slice`, `value`, `encode`, and `reset` are never used [INFO] [stdout] --> src/engine/base17.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 207 | impl Checksummer { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 208 | pub fn new() -> Self { Self { sum: 0 } } [INFO] [stdout] | ^^^ [INFO] [stdout] 209 | [INFO] [stdout] 210 | pub fn feed(&mut self, digit: u8) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn feed_slice(&mut self, digits: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn value(&self) -> u8 { self.sum as u8 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 219 | [INFO] [stdout] 220 | pub fn encode(&self) -> (u8, u8, u8, u8) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn reset(&mut self) { self.sum = 0; } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StreamEncoder` is never constructed [INFO] [stdout] --> src/engine/base17.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 231 | pub struct StreamEncoder { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/base17.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 236 | impl StreamEncoder { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 237 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn write_byte(&mut self, b: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 250 | pub fn write_bytes(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn write_u16(&mut self, v: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub fn write_u32(&mut self, v: u32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | pub fn write_f32(&mut self, v: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | pub fn write_string(&mut self, s: &str) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn write_heartbeat(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub fn finish(mut self) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn len(&self) -> usize { self.buffer.len() } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StreamDecoder` is never constructed [INFO] [stdout] --> src/engine/base17.rs:289:12 [INFO] [stdout] | [INFO] [stdout] 289 | pub struct StreamDecoder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/base17.rs:296:12 [INFO] [stdout] | [INFO] [stdout] 295 | impl<'a> StreamDecoder<'a> { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 296 | pub fn new(data: &'a [u8]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn read_byte(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | pub fn read_u16(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn read_u32(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn read_f32(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn read_string(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | pub fn read_bytes(&mut self, n: usize) -> Result, CodecError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | pub fn remaining(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 349 | pub fn is_at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | pub fn peek_meta(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 361 | pub fn skip_meta(&mut self) { if self.peek_meta().is_some() { self.pos += 2; } } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 362 | [INFO] [stdout] 363 | pub fn verify_checksum(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Opcode` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Opcode { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_byte` and `category` are never used [INFO] [stdout] --> src/engine/amni_ir.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl Opcode { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 37 | pub fn from_byte(b: u8) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn category(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Instruction` is never constructed [INFO] [stdout] --> src/engine/amni_ir.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operands` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | pub enum Operands { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `encode` and `decode` are never used [INFO] [stdout] --> src/engine/amni_ir.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 118 | impl Instruction { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 119 | pub fn encode(&self, enc: &mut StreamEncoder) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn decode(dec: &mut StreamDecoder) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IrProgram` is never constructed [INFO] [stdout] --> src/engine/amni_ir.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | pub struct IrProgram { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `len`, `is_empty`, `encode_to_wire`, and `decode_from_wire` are never used [INFO] [stdout] --> src/engine/amni_ir.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 223 | impl IrProgram { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 224 | pub fn new() -> Self { Self { instructions: Vec::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 225 | [INFO] [stdout] 226 | pub fn push(&mut self, inst: Instruction) { self.instructions.push(inst); } [INFO] [stdout] | ^^^^ [INFO] [stdout] 227 | pub fn len(&self) -> usize { self.instructions.len() } [INFO] [stdout] | ^^^ [INFO] [stdout] 228 | pub fn is_empty(&self) -> bool { self.instructions.is_empty() } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 229 | [INFO] [stdout] 230 | pub fn encode_to_wire(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn decode_from_wire(wire: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IrBuilder` is never constructed [INFO] [stdout] --> src/engine/amni_ir.rs:249:12 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct IrBuilder { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/amni_ir.rs:257:12 [INFO] [stdout] | [INFO] [stdout] 256 | impl IrBuilder { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 257 | pub fn new() -> Self { Self { prog: IrProgram::new(), next_node_id: 1, next_layer_id: 1, frame_count: 0 } } [INFO] [stdout] | ^^^ [INFO] [stdout] 258 | [INFO] [stdout] 259 | pub fn doc_start(&mut self, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | pub fn doc_end(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | pub fn create_node(&mut self, tag: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | pub fn append_child(&mut self, parent: u32, child: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn set_attr(&mut self, node: u32, key: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn set_text(&mut self, node: u32, text: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub fn create_box(&mut self, node: u32, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn set_margin(&mut self, node: u32, t: f32, r: f32, b: f32, l: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn set_padding(&mut self, node: u32, t: f32, r: f32, b: f32, l: f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn paint_rect(&mut self, x: f32, y: f32, w: f32, h: f32, color: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn paint_text(&mut self, x: f32, y: f32, text: &str, color: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn paint_image(&mut self, x: f32, y: f32, w: f32, h: f32, tex: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 297 | pub fn paint_clip(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 300 | pub fn paint_unclip(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn push_layer(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn pop_layer(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | pub fn frame_begin(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 317 | pub fn frame_end(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | pub fn finish(self) -> IrProgram { self.prog } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_tag` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:324:8 [INFO] [stdout] | [INFO] [stdout] 324 | pub fn hash_tag(tag: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `emit_ir_from_render_tree` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:335:8 [INFO] [stdout] | [INFO] [stdout] 335 | pub fn emit_ir_from_render_tree( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `emit_node` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:349:4 [INFO] [stdout] | [INFO] [stdout] 349 | fn emit_node( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rgba_to_u32` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:379:4 [INFO] [stdout] | [INFO] [stdout] 379 | fn rgba_to_u32(r: u8, g: u8, b: u8, a: u8) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IrNode` is never constructed [INFO] [stdout] --> src/engine/ir_executor.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct IrNode { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IrBox` is never constructed [INFO] [stdout] --> src/engine/ir_executor.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | struct IrBox { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IrExecutor` is never constructed [INFO] [stdout] --> src/engine/ir_executor.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct IrExecutor { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TextureRef` is never constructed [INFO] [stdout] --> src/engine/ir_executor.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct TextureRef { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExecutionResult` is never constructed [INFO] [stdout] --> src/engine/ir_executor.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 59 | pub struct ExecutionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/ir_executor.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl IrExecutor { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn execute(&mut self, program: &IrProgram) -> ExecutionResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 300 | pub fn scroll_to(&mut self, x: f32, y: f32) { self.scroll_x = x; self.scroll_y = y; } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 301 | pub fn scroll_by(&mut self, dx: f32, dy: f32) { self.scroll_x += dx; self.scroll_y += dy; } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 302 | pub fn viewport(&self) -> (f32, f32) { (self.viewport_w, self.viewport_h) } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 303 | pub fn scroll_pos(&self) -> (f32, f32) { (self.scroll_x, self.scroll_y) } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 304 | [INFO] [stdout] 305 | pub fn register_texture(&mut self, id: u32, width: u32, height: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 309 | pub fn hit_test(&self, x: f32, y: f32) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | pub fn get_node_text(&self, id: u32) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn get_node_attr(&self, id: u32, key: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `u32_to_rgba` is never used [INFO] [stdout] --> src/engine/ir_executor.rs:340:4 [INFO] [stdout] | [INFO] [stdout] 340 | fn u32_to_rgba(c: u32) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ShuntState` is never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum ShuntState { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShuntConfig` is never constructed [INFO] [stdout] --> src/engine/shunt_sandbox.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct ShuntConfig { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InProcessShunt` is never constructed [INFO] [stdout] --> src/engine/shunt_sandbox.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct InProcessShunt { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl InProcessShunt { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 40 | pub fn new(config: ShuntConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn state(&self) -> &ShuntState { &self.state } [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn process_html(&mut self, url: &str, html: &str, css_sources: &[&str]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn process_to_wire(&mut self, url: &str, html: &str, css_sources: &[&str]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | fn emit_ir(&self, html: &str, css_sources: &[&str], vw: f32, vh: f32) -> IrProgram { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn get_cached(&self, url: &str) -> Option<&IrProgram> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn clear_cache(&mut self) { self.ir_cache.clear(); } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 108 | [INFO] [stdout] 109 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_layout_tree` is never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:116:4 [INFO] [stdout] | [INFO] [stdout] 116 | fn build_layout_tree( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `selector_matches` is never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:159:4 [INFO] [stdout] | [INFO] [stdout] 159 | fn selector_matches(selectors: &[String], tag: &str, id: &str, classes: &[&str]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessShunt` is never constructed [INFO] [stdout] --> src/engine/shunt_sandbox.rs:171:12 [INFO] [stdout] | [INFO] [stdout] 171 | pub struct ProcessShunt { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `spawn`, `send_html`, `is_alive`, `kill`, and `state` are never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:178:12 [INFO] [stdout] | [INFO] [stdout] 177 | impl ProcessShunt { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 178 | pub fn new(config: ShuntConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub fn spawn(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn send_html(&mut self, html: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn is_alive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn kill(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn state(&self) -> &ShuntState { &self.state } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShuntManager` is never constructed [INFO] [stdout] --> src/engine/shunt_sandbox.rs:236:12 [INFO] [stdout] | [INFO] [stdout] 236 | pub struct ShuntManager { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:245:12 [INFO] [stdout] | [INFO] [stdout] 244 | impl ShuntManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 245 | pub fn new(config: ShuntConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn process_html(&mut self, url: &str, html: &str, css: &[&str]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn process_to_wire(&mut self, url: &str, html: &str, css: &[&str]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn state(&self) -> &ShuntState { self.in_process.state() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 292 | [INFO] [stdout] 293 | pub fn crash_count(&self) -> u32 { self.crash_count } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 294 | [INFO] [stdout] 295 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | pub fn stats_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CloneProgram` is never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:314:7 [INFO] [stdout] | [INFO] [stdout] 314 | trait CloneProgram { fn clone_program(&self) -> IrProgram; } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomEvent` is never constructed [INFO] [stdout] --> src/engine/js_bridge.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DomEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mutation_type` and `node_id` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct DomMutation { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 17 | pub mutation_type: MutationType, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 18 | pub node_id: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomMutation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/engine/js_bridge.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub enum MutationType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 23 | SetText(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 24 | SetAttribute(String, String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 25 | RemoveAttribute(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | SetStyle(String, String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 27 | AppendChild(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 28 | RemoveChild(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 29 | SetInnerHtml(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MutationType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `callback_code`, `interval_ms`, `is_interval`, and `next_fire_ms` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct TimerEntry { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 34 | pub id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 35 | pub callback_code: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 36 | pub interval_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 37 | pub is_interval: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 38 | pub next_fire_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TimerEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `url`, `method`, `headers`, and `body` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct FetchRequest { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 43 | pub id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 44 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 45 | pub method: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 46 | pub headers: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | pub body: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FetchRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `body_id`, `head_id`, and `parent_map` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 51 | struct DomSnapshot { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 52 | nodes: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | body_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 54 | head_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 55 | parent_map: HashMap, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tag`, `text`, `attrs`, `styles`, `children`, and `classes` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 59 | struct SnapshotNode { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 60 | tag: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 61 | text: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 62 | attrs: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 63 | styles: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | children: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 65 | classes: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SnapshotNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/engine/js_bridge.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct JsDomBridge { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 69 | runtime: JsRuntime, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 70 | event_handlers: HashMap<(usize, String), Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 71 | pending_mutations: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | timers: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 73 | next_timer_id: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 74 | fetch_queue: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 75 | next_fetch_id: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 76 | pending_fetches: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | dom_snapshot: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 78 | local_storage: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 79 | session_storage: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 80 | current_origin: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/js_bridge.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl JsDomBridge { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn set_origin(&mut self, origin: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn snapshot_dom(&mut self, tree: &RenderTree) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn build_nodes_json(snap: &DomSnapshot) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | fn build_storage_json(storage: &HashMap>, origin: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | fn inject_dom_api(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 479 | pub fn exec_script(&mut self, script: &str) -> JsExecResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 496 | fn collect_mutations(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 551 | fn collect_timers(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 570 | fn collect_fetches(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 596 | fn collect_storage_mutations(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 626 | pub fn dispatch_event(&mut self, event: &DomEvent) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 648 | pub fn tick_timers(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 677 | pub fn resolve_fetch(&mut self, id: u32, status: u16, headers: HashMap, body: String) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 705 | pub fn apply_mutations(tree: &mut RenderTree, mutations: &[DomMutation]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | pub fn pending_fetch_count(&self) -> usize { self.fetch_queue.len() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 726 | pub fn timer_count(&self) -> usize { self.timers.len() } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 727 | [INFO] [stdout] 728 | pub fn drain_fetch_queue(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn drain_pending_fetches(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 736 | pub fn get_local_storage(&self, origin: &str) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 741 | pub fn get_session_storage(&self, origin: &str) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 746 | pub fn clear_session_storage(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 750 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsExecResult` is never constructed [INFO] [stdout] --> src/engine/js_bridge.rs:763:12 [INFO] [stdout] | [INFO] [stdout] 763 | pub struct JsExecResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InlineItem` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum InlineItem { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InlineStyle` is never constructed [INFO] [stdout] --> src/engine/inline_layout.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct InlineStyle { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_computed` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl InlineStyle { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 25 | pub fn from_computed(cs: &ComputedStyle) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PositionedFragment` is never constructed [INFO] [stdout] --> src/engine/inline_layout.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct PositionedFragment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LineBox` is never constructed [INFO] [stdout] --> src/engine/inline_layout.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct LineBox { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InlineFormattingContext` is never constructed [INFO] [stdout] --> src/engine/inline_layout.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct InlineFormattingContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `layout`, `commit_line`, `fragment_count`, `line_count`, and `all_fragments` are never used [INFO] [stdout] --> src/engine/inline_layout.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 63 | impl InlineFormattingContext { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 64 | pub fn layout(items: &[InlineItem], max_width: f32, text_align: TextAlign, shaper: &TextShaper) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | fn commit_line( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn fragment_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn line_count(&self) -> usize { self.lines.len() } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn all_fragments(&self) -> Vec<&PositionedFragment> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_words` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:182:4 [INFO] [stdout] | [INFO] [stdout] 182 | fn split_words(text: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_inline_items` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | pub fn extract_inline_items( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_inline_recursive` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:209:4 [INFO] [stdout] | [INFO] [stdout] 209 | fn extract_inline_recursive( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collapse_whitespace` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:271:4 [INFO] [stdout] | [INFO] [stdout] 271 | fn collapse_whitespace(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transform` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Transform { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/css_advanced.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Transform { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 10 | pub fn translate(tx: f32, ty: f32) -> Self { Self { matrix: [1.0, 0.0, 0.0, 1.0, tx, ty] } } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | pub fn rotate(deg: f32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn scale(sx: f32, sy: f32) -> Self { Self { matrix: [sx, 0.0, 0.0, sy, 0.0, 0.0] } } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | pub fn skew(ax: f32, ay: f32) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn matrix(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32) -> Self { Self { matrix: [a, b, c, d, e, f] } } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 23 | pub fn apply_to_point(&self, x: f32, y: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn compose(&self, other: &Transform) -> Transform { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TimingFunction` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:38:10 [INFO] [stdout] | [INFO] [stdout] 38 | pub enum TimingFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `interpolate` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl TimingFunction { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 47 | pub fn interpolate(&self, t: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cubic_bezier_sample` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:58:4 [INFO] [stdout] | [INFO] [stdout] 58 | fn cubic_bezier_sample(x1: f32, y1: f32, x2: f32, y2: f32, t: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bezier_component` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn bezier_component(p1: f32, p2: f32, t: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transition` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct Transition { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `interpolate` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl Transition { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 82 | pub fn interpolate(&self, t: f32) -> f32 { self.timing.interpolate(t) } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AnimationDirection` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:85:10 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum AnimationDirection { Normal, Reverse, Alternate, AlternateReverse } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FillMode` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum FillMode { None, Forwards, Backwards, Both } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Keyframe` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct Keyframe { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Animation` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct Animation { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compute_value_at` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl Animation { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 104 | pub fn compute_value_at(&self, property: &str, progress: f32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Gradient` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub enum Gradient { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `sample_color_at` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 149 | impl Gradient { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 150 | pub fn sample_color_at(&self, position: f32) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lerp_u8` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:178:4 [INFO] [stdout] | [INFO] [stdout] 178 | fn lerp_u8(a: u8, b: u8, t: f32) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BoxShadow` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct BoxShadow { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TextShadow` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | pub struct TextShadow { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Filter` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:198:10 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum Filter { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Orientation` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:211:10 [INFO] [stdout] | [INFO] [stdout] 211 | pub enum Orientation { Portrait, Landscape } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ColorScheme` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:213:10 [INFO] [stdout] | [INFO] [stdout] 213 | pub enum ColorScheme { Light, Dark } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MediaCondition` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:215:10 [INFO] [stdout] | [INFO] [stdout] 215 | pub enum MediaCondition { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediaQuery` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 225 | pub struct MediaQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl MediaQuery { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | pub fn evaluate(&self, viewport_w: f32, viewport_h: f32, is_dark: bool) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CssVars` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:247:12 [INFO] [stdout] | [INFO] [stdout] 247 | pub struct CssVars { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set`, `resolve_var`, and `resolve_value` are never used [INFO] [stdout] --> src/engine/css_advanced.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 250 | impl CssVars { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 251 | pub fn new() -> Self { Self { vars: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 252 | pub fn set(&mut self, name: &str, value: &str) { self.vars.insert(name.to_string(), value.to_string()); } [INFO] [stdout] | ^^^ [INFO] [stdout] 253 | pub fn resolve_var(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn resolve_value(&self, value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_calc` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | pub fn parse_calc(expr: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eval_calc_expr` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:277:4 [INFO] [stdout] | [INFO] [stdout] 277 | fn eval_calc_expr(expr: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strip_parens` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:321:4 [INFO] [stdout] | [INFO] [stdout] 321 | fn strip_parens(s: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_calc_value` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:337:4 [INFO] [stdout] | [INFO] [stdout] 337 | fn parse_calc_value(s: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_transform` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:347:8 [INFO] [stdout] | [INFO] [stdout] 347 | pub fn parse_transform(s: &str) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_gradient` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn parse_gradient(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_gradient_args` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:437:4 [INFO] [stdout] | [INFO] [stdout] 437 | fn split_gradient_args(s: &str) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_color_stop` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | fn parse_color_stop(s: &str) -> ([u8; 4], Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_stop_position` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:479:4 [INFO] [stdout] | [INFO] [stdout] 479 | fn parse_stop_position(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_hex_color` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:485:4 [INFO] [stdout] | [INFO] [stdout] 485 | fn parse_hex_color(s: &str) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_rgb_color` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:507:4 [INFO] [stdout] | [INFO] [stdout] 507 | fn parse_rgb_color(s: &str) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_box_shadow` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:520:8 [INFO] [stdout] | [INFO] [stdout] 520 | pub fn parse_box_shadow(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_filter` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:554:8 [INFO] [stdout] | [INFO] [stdout] 554 | pub fn parse_filter(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_transition` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:592:8 [INFO] [stdout] | [INFO] [stdout] 592 | pub fn parse_transition(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time_ms` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:603:4 [INFO] [stdout] | [INFO] [stdout] 603 | fn parse_time_ms(s: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_timing_fn` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:608:4 [INFO] [stdout] | [INFO] [stdout] 608 | fn parse_timing_fn(s: &str) -> TimingFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediaQueryList` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:625:12 [INFO] [stdout] | [INFO] [stdout] 625 | pub struct MediaQueryList { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate_all` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:629:12 [INFO] [stdout] | [INFO] [stdout] 628 | impl MediaQueryList { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 629 | pub fn evaluate_all(&self, vw: f32, vh: f32, is_dark: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_media_condition` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:634:4 [INFO] [stdout] | [INFO] [stdout] 634 | fn parse_media_condition(cond: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_px_value` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:664:4 [INFO] [stdout] | [INFO] [stdout] 664 | fn parse_px_value(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_media_query_str` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:669:4 [INFO] [stdout] | [INFO] [stdout] 669 | fn parse_media_query_str(s: &str) -> MediaQuery { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate_media_queries` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:678:8 [INFO] [stdout] | [INFO] [stdout] 678 | pub fn evaluate_media_queries(css: &str, viewport_width: f32, viewport_height: f32, _dpr: f32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PlayState` is never used [INFO] [stdout] --> src/engine/animations.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum PlayState { Running, Paused } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnimationUpdate` is never constructed [INFO] [stdout] --> src/engine/animations.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct AnimationUpdate { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ActiveTransition` is never constructed [INFO] [stdout] --> src/engine/animations.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ActiveTransition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `interpolate` and `is_complete` are never used [INFO] [stdout] --> src/engine/animations.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl ActiveTransition { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] 28 | pub fn interpolate(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn is_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ActiveAnimation` is never constructed [INFO] [stdout] --> src/engine/animations.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ActiveAnimation { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `progress` and `is_complete` are never used [INFO] [stdout] --> src/engine/animations.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 57 | impl ActiveAnimation { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 58 | pub fn progress(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | fn is_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KeyframeStop` is never constructed [INFO] [stdout] --> src/engine/animations.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct KeyframeStop { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Keyframes` is never constructed [INFO] [stdout] --> src/engine/animations.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | pub struct Keyframes { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `interpolate_property` and `properties` are never used [INFO] [stdout] --> src/engine/animations.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 105 | impl Keyframes { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 106 | pub fn interpolate_property(&self, property: &str, progress: f32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn properties(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnimationController` is never constructed [INFO] [stdout] --> src/engine/animations.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct AnimationController { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/animations.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 139 | impl AnimationController { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 140 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn register_keyframes(&mut self, name: &str, css: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn start_transition( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn start_animation( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn tick(&mut self, delta_ms: f64) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn has_active_animations(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn cancel_animations(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn cancel_transitions(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 241 | pub fn active_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate` is never used [INFO] [stdout] --> src/engine/animations.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn evaluate(easing: &TimingFunction, t: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_keyframe_block` is never used [INFO] [stdout] --> src/engine/animations.rs:251:4 [INFO] [stdout] | [INFO] [stdout] 251 | fn parse_keyframe_block(css: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_keyframe_selector` is never used [INFO] [stdout] --> src/engine/animations.rs:273:4 [INFO] [stdout] | [INFO] [stdout] 273 | fn parse_keyframe_selector(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_declarations` is never used [INFO] [stdout] --> src/engine/animations.rs:287:4 [INFO] [stdout] | [INFO] [stdout] 287 | fn parse_declarations(body: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_keyframes_from_css` is never used [INFO] [stdout] --> src/engine/animations.rs:301:8 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn parse_keyframes_from_css(css: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/engine/forms.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum FormElementType { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] 5 | TextInput, Password, Email, Number, Search, Tel, Url, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^ ^^^^^^ ^^^ ^^^ [INFO] [stdout] 6 | Textarea, Checkbox, Radio, Select, Button, Submit, Reset, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] 7 | File, Range, Color, Date, Hidden, [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^ ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FormElementType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value`, `label`, and `selected` are never read [INFO] [stdout] --> src/engine/forms.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SelectOption { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 11 | pub value: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | pub selected: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SelectOption` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/engine/forms.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct FormElement { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 17 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 18 | pub element_type: FormElementType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 19 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 20 | pub value: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | pub placeholder: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 22 | pub checked: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 23 | pub disabled: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 24 | pub readonly: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 25 | pub min: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] 26 | pub max: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | pub step: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | pub options: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 29 | pub selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 30 | pub focus: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 31 | pub cursor_pos: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 32 | pub selection_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub selection_end: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 34 | pub form_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 35 | pub scroll_offset: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FormElement` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/engine/forms.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl FormElement { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 38 | pub fn new(id: &str, element_type: FormElementType) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValidationResult` is never constructed [INFO] [stdout] --> src/engine/forms.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `elements`, `active_form_id`, and `focused_element_id` are never read [INFO] [stdout] --> src/engine/forms.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct FormState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 54 | pub elements: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub active_form_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 56 | pub focused_element_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/forms.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl FormState { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn add_element(&mut self, elem: FormElement) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn handle_key_input(&mut self, element_id: &str, key: &str, shift: bool, ctrl: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn handle_click(&mut self, element_id: &str, _x: f32, _y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn handle_mouse_down(&mut self, element_id: &str, x: f32, _y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn handle_mouse_up(&mut self, _element_id: &str, _x: f32, _y: f32) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 223 | pub fn submit_form(&self, form_id: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn validate_element(&self, id: &str) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_text_input` is never used [INFO] [stdout] --> src/engine/forms.rs:283:8 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn render_text_input(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_button` is never used [INFO] [stdout] --> src/engine/forms.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn render_button(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_checkbox` is never used [INFO] [stdout] --> src/engine/forms.rs:341:8 [INFO] [stdout] | [INFO] [stdout] 341 | pub fn render_checkbox(elem: &FormElement, x: f32, y: f32, size: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_radio` is never used [INFO] [stdout] --> src/engine/forms.rs:362:8 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn render_radio(elem: &FormElement, x: f32, y: f32, size: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_select` is never used [INFO] [stdout] --> src/engine/forms.rs:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | pub fn render_select(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_textarea` is never used [INFO] [stdout] --> src/engine/forms.rs:402:8 [INFO] [stdout] | [INFO] [stdout] 402 | pub fn render_textarea(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_range` is never used [INFO] [stdout] --> src/engine/forms.rs:448:8 [INFO] [stdout] | [INFO] [stdout] 448 | pub fn render_range(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_progress` is never used [INFO] [stdout] --> src/engine/forms.rs:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | pub fn render_progress(value: f32, max: f32, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `None`, `Capture`, `AtTarget`, and `Bubble` are never constructed [INFO] [stdout] --> src/engine/events.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum EventPhase { None, Capture, AtTarget, Bubble } [INFO] [stdout] | ---------- ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `EventPhase` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/engine/events.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum EventType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 7 | Click, DblClick, MouseDown, MouseUp, MouseMove, MouseEnter, MouseLeave, [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] 8 | MouseOver, MouseOut, KeyDown, KeyUp, KeyPress, Focus, Blur, FocusIn, FocusOut, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^ [INFO] [stdout] 9 | Input, Change, Submit, Reset, Scroll, Resize, Load, Unload, Error, [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^^ ^^^^^ ^^^^^^ ^^^^^^ ^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] 10 | DOMContentLoaded, Wheel, ContextMenu, TouchStart, TouchEnd, TouchMove, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 11 | DragStart, Drag, DragEnd, Drop, Paste, Copy, Cut, [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bubbles` and `cancelable` are never used [INFO] [stdout] --> src/engine/events.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl EventType { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 14 | pub fn bubbles(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn cancelable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomEvent` is never constructed [INFO] [stdout] --> src/engine/events.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct DomEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `mouse`, `keyboard`, `prevent_default`, `stop_propagation`, and `stop_immediate_propagation` are never used [INFO] [stdout] --> src/engine/events.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl DomEvent { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 53 | pub fn new(event_type: EventType, target: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn mouse(event_type: EventType, target: usize, x: f32, y: f32, button: u8) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn keyboard(event_type: EventType, target: usize, key: &str, code: u32, shift: bool, ctrl: bool, alt: bool, meta: bool) -> S... [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn prevent_default(&mut self) { if self.cancelable { self.default_prevented = true; } } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 76 | pub fn stop_propagation(&mut self) { self.propagation_stopped = true; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | pub fn stop_immediate_propagation(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `callback_id`, `phase`, and `once` are never read [INFO] [stdout] --> src/engine/events.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct EventHandler { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 84 | pub callback_id: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 85 | pub phase: EventPhase, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | pub once: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `handlers`, `node_ancestors`, and `next_callback_id` are never read [INFO] [stdout] --> src/engine/events.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct EventDispatcher { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 89 | handlers: HashMap<(usize, EventType), Vec>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 90 | node_ancestors: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 91 | next_callback_id: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/events.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl EventDispatcher { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn add_listener(&mut self, node_id: usize, event_type: EventType, use_capture: bool, once: bool) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn remove_listener(&mut self, node_id: usize, event_type: EventType, callback_id: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn dispatch(&mut self, event: &mut DomEvent) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn fire_handlers(&self, node_id: usize, event: &mut DomEvent, phase: EventPhase, fired: &mut Vec, once_removals: &mut Vec<... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | fn build_path(&self, target: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn set_ancestors(&mut self, node_id: usize, ancestors: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn clear_node(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `current_focus` and `tab_order` are never read [INFO] [stdout] --> src/engine/events.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 171 | pub struct FocusManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 172 | pub current_focus: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 173 | pub tab_order: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `focus`, `blur`, `tab_next`, `tab_prev`, and `set_tab_order` are never used [INFO] [stdout] --> src/engine/events.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 175 | impl FocusManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 176 | pub fn new() -> Self { Self { current_focus: None, tab_order: Vec::new() } } [INFO] [stdout] 177 | pub fn focus(&mut self, node_id: usize, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn blur(&mut self, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn tab_next(&mut self, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn tab_prev(&mut self, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn set_tab_order(&mut self, ids: Vec) { self.tab_order = ids; } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HitTester` is never constructed [INFO] [stdout] --> src/engine/events.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub struct HitTester; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `hit_test` is never used [INFO] [stdout] --> src/engine/events.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 224 | impl HitTester { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 225 | pub fn hit_test(x: f32, y: f32, layout_rects: &HashMap) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Center` and `Right` are never constructed [INFO] [stdout] --> src/engine/canvas.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TextAlign { Left, Center, Right } [INFO] [stdout] | --------- ^^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `TextAlign` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Top`, `Middle`, and `Bottom` are never constructed [INFO] [stdout] --> src/engine/canvas.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum TextBaseline { Top, Middle, Alphabetic, Bottom } [INFO] [stdout] | ------------ ^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `TextBaseline` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/engine/canvas.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CanvasState { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 8 | pub fill_color: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | pub stroke_color: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 10 | pub line_width: f32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | pub global_alpha: f32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 12 | pub transform: [f32; 6], [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | pub clip_rect: Option<(f32, f32, f32, f32)>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | pub font_size: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 15 | pub text_align: TextAlign, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 16 | pub text_baseline: TextBaseline, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CanvasState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `MoveTo`, `LineTo`, `Arc`, `QuadraticCurveTo`, `BezierCurveTo`, and `ClosePath` are never constructed [INFO] [stdout] --> src/engine/canvas.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum PathCommand { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 35 | MoveTo(f32, f32), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 36 | LineTo(f32, f32), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 37 | Arc(f32, f32, f32, f32, f32, bool), [INFO] [stdout] | ^^^ [INFO] [stdout] 38 | QuadraticCurveTo(f32, f32, f32, f32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | BezierCurveTo(f32, f32, f32, f32, f32, f32), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 40 | ClosePath, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PathCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `commands` is never read [INFO] [stdout] --> src/engine/canvas.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct Path { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 44 | pub commands: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Path` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `flatten` are never used [INFO] [stdout] --> src/engine/canvas.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Path { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 47 | pub fn new() -> Self { Self { commands: Vec::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 48 | pub fn flatten(&self, tolerance: f32) -> Vec<(f32, f32)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, `pixels`, `state`, `state_stack`, and `current_path` are never read [INFO] [stdout] --> src/engine/canvas.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct Canvas2D { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 113 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 114 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 115 | pub pixels: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 116 | state: CanvasState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 117 | state_stack: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 118 | current_path: Path, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/canvas.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl Canvas2D { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 121 | pub fn new(w: u32, h: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn save(&mut self) { self.state_stack.push(self.state.clone()); } [INFO] [stdout] | ^^^^ [INFO] [stdout] 126 | pub fn restore(&mut self) { if let Some(s) = self.state_stack.pop() { self.state = s; } } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 127 | pub fn fill_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn stroke_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn clear_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn begin_path(&mut self) { self.current_path = Path::new(); } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 156 | pub fn move_to(&mut self, x: f32, y: f32) { self.current_path.commands.push(PathCommand::MoveTo(x, y)); } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 157 | pub fn line_to(&mut self, x: f32, y: f32) { self.current_path.commands.push(PathCommand::LineTo(x, y)); } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 158 | pub fn arc(&mut self, cx: f32, cy: f32, r: f32, start_angle: f32, end_angle: f32, ccw: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn quadratic_curve_to(&mut self, cpx: f32, cpy: f32, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn bezier_curve_to(&mut self, cp1x: f32, cp1y: f32, cp2x: f32, cp2y: f32, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn close_path(&mut self) { self.current_path.commands.push(PathCommand::ClosePath); } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 168 | pub fn fill(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn stroke(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn fill_text(&mut self, text: &str, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn draw_image(&mut self, src_pixels: &[u8], src_w: u32, src_h: u32, dx: f32, dy: f32, dw: f32, dh: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | pub fn translate(&mut self, tx: f32, ty: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn rotate(&mut self, angle: f32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub fn scale(&mut self, sx: f32, sy: f32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn set_transform(&mut self, a: f32, b: f32, c: f32, d: f32, e: f32, f: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn set_fill_style(&mut self, color: [u8; 4]) { self.state.fill_color = color; } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 286 | pub fn set_stroke_style(&mut self, color: [u8; 4]) { self.state.stroke_color = color; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 287 | pub fn set_line_width(&mut self, w: f32) { self.state.line_width = w.max(0.0); } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 288 | pub fn set_global_alpha(&mut self, a: f32) { self.state.global_alpha = a.clamp(0.0, 1.0); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 289 | pub fn set_font_size(&mut self, size: f32) { self.state.font_size = size.max(1.0); } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 290 | pub fn set_text_align(&mut self, align: TextAlign) { self.state.text_align = align; } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 291 | pub fn set_text_baseline(&mut self, baseline: TextBaseline) { self.state.text_baseline = baseline; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 292 | pub fn set_clip_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn get_image_data(&self, x: u32, y: u32, w: u32, h: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | pub fn put_image_data(&mut self, data: &[u8], x: u32, y: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn to_png_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | fn set_pixel(&mut self, x: i32, y: i32, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | fn set_pixel_direct(&mut self, x: i32, y: i32, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | fn apply_alpha(&self, mut color: [u8; 4]) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | fn transform_point(&self, x: f32, y: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | fn draw_line_internal(&mut self, x0: f32, y0: f32, x1: f32, y1: f32, color: &[u8; 4], width: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn draw_line_raw(&mut self, x0: f32, y0: f32, x1: f32, y1: f32, color: &[u8; 4], width: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SvgElement` is never used [INFO] [stdout] --> src/engine/svg.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum SvgElement { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SvgNode` is never constructed [INFO] [stdout] --> src/engine/svg.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SvgNode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `attr_f32`, and `attr_str` are never used [INFO] [stdout] --> src/engine/svg.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SvgNode { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new(element: SvgElement) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fn attr_f32(&self, name: &str, default: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn attr_str(&self, name: &str) -> &str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SvgDocument` is never constructed [INFO] [stdout] --> src/engine/svg.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct SvgDocument { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PathSegment` is never used [INFO] [stdout] --> src/engine/svg.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum PathSegment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tag_to_element` is never used [INFO] [stdout] --> src/engine/svg.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn tag_to_element(tag: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `XmlToken` is never constructed [INFO] [stdout] --> src/engine/svg.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct XmlToken { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tokenize_xml` is never used [INFO] [stdout] --> src/engine/svg.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn tokenize_xml(xml: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_svg` is never used [INFO] [stdout] --> src/engine/svg.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn parse_svg(xml: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_dimension` is never used [INFO] [stdout] --> src/engine/svg.rs:199:4 [INFO] [stdout] | [INFO] [stdout] 199 | fn parse_dimension(s: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_defs` is never used [INFO] [stdout] --> src/engine/svg.rs:203:4 [INFO] [stdout] | [INFO] [stdout] 203 | fn collect_defs(node: &SvgNode, defs: &mut HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_to_commands` is never used [INFO] [stdout] --> src/engine/svg.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn render_to_commands(doc: &SvgDocument) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderCtx` is never constructed [INFO] [stdout] --> src/engine/svg.rs:215:8 [INFO] [stdout] | [INFO] [stdout] 215 | struct RenderCtx<'a> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `tx`, `ty`, `tw`, and `th` are never used [INFO] [stdout] --> src/engine/svg.rs:223:8 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'a> RenderCtx<'a> { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 223 | fn tx(&self, x: f32) -> f32 { x * self.scale_x + self.offset_x } [INFO] [stdout] | ^^ [INFO] [stdout] 224 | fn ty(&self, y: f32) -> f32 { y * self.scale_y + self.offset_y } [INFO] [stdout] | ^^ [INFO] [stdout] 225 | fn tw(&self, w: f32) -> f32 { w * self.scale_x } [INFO] [stdout] | ^^ [INFO] [stdout] 226 | fn th(&self, h: f32) -> f32 { h * self.scale_y } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_node` is never used [INFO] [stdout] --> src/engine/svg.rs:228:4 [INFO] [stdout] | [INFO] [stdout] 228 | fn render_node(node: &SvgNode, ctx: &RenderCtx, commands: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_ellipse_fill` is never used [INFO] [stdout] --> src/engine/svg.rs:354:4 [INFO] [stdout] | [INFO] [stdout] 354 | fn render_ellipse_fill(cx: f32, cy: f32, rx: f32, ry: f32, color: [u8; 4], commands: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_line` is never used [INFO] [stdout] --> src/engine/svg.rs:372:4 [INFO] [stdout] | [INFO] [stdout] 372 | fn render_line(x0: f32, y0: f32, x1: f32, y1: f32, width: f32, color: [u8; 4], commands: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_point_list` is never used [INFO] [stdout] --> src/engine/svg.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn parse_point_list(s: &str) -> Vec<(f32, f32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_polygon_fill` is never used [INFO] [stdout] --> src/engine/svg.rs:412:4 [INFO] [stdout] | [INFO] [stdout] 412 | fn render_polygon_fill(pts: &[(f32, f32)], ctx: &RenderCtx, color: [u8; 4], commands: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_path_data` is never used [INFO] [stdout] --> src/engine/svg.rs:444:8 [INFO] [stdout] | [INFO] [stdout] 444 | pub fn parse_path_data(d: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_path_segments` is never used [INFO] [stdout] --> src/engine/svg.rs:518:4 [INFO] [stdout] | [INFO] [stdout] 518 | fn render_path_segments(segments: &[PathSegment], ctx: &RenderCtx, fill: Option<[u8; 4]>, stroke: Option<[u8; 4]>, stroke_width: f3... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_svg_color` is never used [INFO] [stdout] --> src/engine/svg.rs:633:8 [INFO] [stdout] | [INFO] [stdout] 633 | pub fn parse_svg_color(s: &str) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_svg_transform` is never used [INFO] [stdout] --> src/engine/svg.rs:698:8 [INFO] [stdout] | [INFO] [stdout] 698 | pub fn parse_svg_transform(s: &str) -> [f32; 6] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply_matrices` is never used [INFO] [stdout] --> src/engine/svg.rs:748:4 [INFO] [stdout] | [INFO] [stdout] 748 | fn multiply_matrices(a: [f32; 6], b: [f32; 6]) -> [f32; 6] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FontFormat` is never used [INFO] [stdout] --> src/engine/web_fonts.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum FontFormat { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_url` and `is_supported` are never used [INFO] [stdout] --> src/engine/web_fonts.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl FontFormat { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 14 | pub fn from_url(url: &str) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn is_supported(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FontFace` is never constructed [INFO] [stdout] --> src/engine/web_fonts.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct FontFace { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FontStyle` is never used [INFO] [stdout] --> src/engine/web_fonts.rs:48:10 [INFO] [stdout] | [INFO] [stdout] 48 | pub enum FontStyle { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FontCache` is never constructed [INFO] [stdout] --> src/engine/web_fonts.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct FontCache { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/web_fonts.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl FontCache { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 68 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn request_load(&self, face: &FontFace) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn store_font(&mut self, family: &str, data: Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn get_font_data(&self, family: &str, weight: u16) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn has_font(&self, family: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn add_faces(&mut self, faces: Vec) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn pending_urls(&self) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_font_face_rules` is never used [INFO] [stdout] --> src/engine/web_fonts.rs:153:8 [INFO] [stdout] | [INFO] [stdout] 153 | pub fn parse_font_face_rules(css: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_font_face_block` is never used [INFO] [stdout] --> src/engine/web_fonts.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_font_face_block(block: &str) -> FontFace { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_url` is never used [INFO] [stdout] --> src/engine/web_fonts.rs:246:4 [INFO] [stdout] | [INFO] [stdout] 246 | fn extract_url(val: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_font_faces_from_css` is never used [INFO] [stdout] --> src/engine/web_fonts.rs:266:8 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn extract_font_faces_from_css(css: &str) -> (String, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Viewport` is never constructed [INFO] [stdout] --> src/engine/viewport.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Viewport { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/viewport.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Viewport { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(w: f32, h: f32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn max_scroll_x(&self) -> f32 { (self.content_width - self.width).max(0.0) } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 18 | pub fn max_scroll_y(&self) -> f32 { (self.content_height - self.height).max(0.0) } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 19 | pub fn scroll_by(&mut self, dx: f32, dy: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn scroll_to(&mut self, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn scroll_to_element(&mut self, element_y: f32, element_h: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn set_size(&mut self, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn set_content_size(&mut self, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn visible_rect(&self) -> (f32, f32, f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn is_element_visible(&self, x: f32, y: f32, w: f32, h: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn zoom_in(&mut self) { self.zoom = (self.zoom + 0.1).min(5.0); } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 54 | pub fn zoom_out(&mut self) { self.zoom = (self.zoom - 0.1).max(0.1); } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub fn zoom_reset(&mut self) { self.zoom = 1.0; } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 56 | pub fn scroll_percent_y(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PageSize` is never used [INFO] [stdout] --> src/engine/print.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum PageSize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `dimensions_mm` is never used [INFO] [stdout] --> src/engine/print.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl PageSize { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 11 | pub fn dimensions_mm(&self) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Orientation` is never used [INFO] [stdout] --> src/engine/print.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum Orientation { Portrait, Landscape } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PrintMargins` is never constructed [INFO] [stdout] --> src/engine/print.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PrintMargins { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `default_mm` is never used [INFO] [stdout] --> src/engine/print.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl PrintMargins { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 30 | pub fn default_mm() -> Self { Self { top: 10.0, right: 10.0, bottom: 10.0, left: 10.0 } } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PrintJob` is never constructed [INFO] [stdout] --> src/engine/print.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct PrintJob { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `content_dimensions_mm` are never used [INFO] [stdout] --> src/engine/print.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl PrintJob { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 41 | pub fn new(title: &str, url: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn content_dimensions_mm(&self) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_page_to_image` is never used [INFO] [stdout] --> src/engine/print.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn render_page_to_image(html: &str, css: &[&str], width: f32, height: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `estimate_page_count` is never used [INFO] [stdout] --> src/engine/print.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn estimate_page_count(content_height: f32, page_height: f32) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WindowType` is never used [INFO] [stdout] --> src/engine/window_mgmt.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum WindowType { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WindowRequest` is never constructed [INFO] [stdout] --> src/engine/window_mgmt.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct WindowRequest { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DialogType` is never used [INFO] [stdout] --> src/engine/window_mgmt.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DialogType { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DialogResult` is never used [INFO] [stdout] --> src/engine/window_mgmt.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum DialogResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WindowInfo` is never constructed [INFO] [stdout] --> src/engine/window_mgmt.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct WindowInfo { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WindowManager` is never constructed [INFO] [stdout] --> src/engine/window_mgmt.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct WindowManager { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/window_mgmt.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl WindowManager { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 91 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn open_window(&mut self, request: WindowRequest) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn close_window(&mut self, id: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn get_window(&self, id: u32) -> Option<&WindowInfo> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn list_windows(&self) -> Vec<&WindowInfo> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn show_dialog(&mut self, window_id: u32, dialog: DialogType) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn resolve_dialog(&mut self, result: DialogResult) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn pending_dialog(&self) -> Option<&(u32, DialogType)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn is_popup_allowed(&self, origin: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn allow_popup_origin(&mut self, origin: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn window_open_from_js( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_window_features` is never used [INFO] [stdout] --> src/engine/window_mgmt.rs:242:4 [INFO] [stdout] | [INFO] [stdout] 242 | fn parse_window_features(features: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_origin` is never used [INFO] [stdout] --> src/engine/window_mgmt.rs:268:4 [INFO] [stdout] | [INFO] [stdout] 268 | fn extract_origin(url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/engine/drm_fallback.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 152 | pub enum FallbackMethod { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 158 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FallbackMethod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `remove_override` is never used [INFO] [stdout] --> src/engine/drm_fallback.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 187 | impl DrmFallbackManager { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn remove_override(&mut self, domain: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HistoryState` is never constructed [INFO] [stdout] --> src/engine/history_api.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct HistoryState { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HistoryEntry` is never constructed [INFO] [stdout] --> src/engine/history_api.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct HistoryEntry { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/history_api.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl HistoryState { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 11 | pub fn new(initial_url: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn push_state(&mut self, state: &str, title: &str, url: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn replace_state(&mut self, state: &str, title: &str, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn go_back(&mut self) -> Option<&HistoryEntry> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn go_forward(&mut self) -> Option<&HistoryEntry> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn go(&mut self, delta: i32) -> Option<&HistoryEntry> { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn length(&self) -> usize { self.entries.len() } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 45 | pub fn current(&self) -> Option<&HistoryEntry> { self.entries.get(self.current_index) } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorkerHandle` is never constructed [INFO] [stdout] --> src/engine/web_workers.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct WorkerHandle { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorkerManager` is never constructed [INFO] [stdout] --> src/engine/web_workers.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct WorkerManager { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create_worker`, `post_message`, `terminate`, `drain_messages`, and `worker_count` are never used [INFO] [stdout] --> src/engine/web_workers.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl WorkerManager { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { Self { workers: HashMap::new(), next_id: 1 } } [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | pub fn create_worker(&mut self, script_url: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn post_message(&mut self, worker_id: u32, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn terminate(&mut self, worker_id: u32) { self.workers.remove(&worker_id); } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 26 | pub fn drain_messages(&mut self, worker_id: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn worker_count(&self) -> usize { self.workers.len() } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ClipboardManager` is never constructed [INFO] [stdout] --> src/engine/clipboard.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct ClipboardManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read_text`, `write_text`, and `clear` are never used [INFO] [stdout] --> src/engine/clipboard.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl ClipboardManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new() -> Self { Self { clipboard_text: String::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | pub fn read_text(&self) -> &str { &self.clipboard_text } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 8 | pub fn write_text(&mut self, text: &str) { self.clipboard_text = text.to_string(); } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | pub fn clear(&mut self) { self.clipboard_text.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_system_clipboard` is never used [INFO] [stdout] --> src/engine/clipboard.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn read_system_clipboard() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_system_clipboard` is never used [INFO] [stdout] --> src/engine/clipboard.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn write_system_clipboard(text: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GeolocationResult` is never constructed [INFO] [stdout] --> src/engine/web_apis.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct GeolocationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GeolocationApi` is never constructed [INFO] [stdout] --> src/engine/web_apis.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct GeolocationApi; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_position` is never used [INFO] [stdout] --> src/engine/web_apis.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl GeolocationApi { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 12 | pub fn get_position() -> GeolocationResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NotificationsApi` is never constructed [INFO] [stdout] --> src/engine/web_apis.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct NotificationsApi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `request_permission` and `show_notification` are never used [INFO] [stdout] --> src/engine/web_apis.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl NotificationsApi { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] 18 | pub fn request_permission() -> String { "denied".to_string() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | pub fn show_notification(_title: &str, _body: &str) -> bool { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PerformanceApi` is never constructed [INFO] [stdout] --> src/engine/web_apis.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct PerformanceApi { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `mark`, `measure`, `now`, `navigation_start`, and `now_internal` are never used [INFO] [stdout] --> src/engine/web_apis.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl PerformanceApi { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn mark(&mut self, name: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn measure(&self, _name: &str, start_mark: &str, end_mark: &str) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn now() -> f64 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn navigation_start(&self) -> f64 { self.navigation_start_ms } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | fn now_internal(&self) -> f64 { self.start.elapsed().as_secs_f64() * 1000.0 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IntersectionEntry` is never constructed [INFO] [stdout] --> src/engine/web_apis.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct IntersectionEntry { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IntersectionObserverStub` is never constructed [INFO] [stdout] --> src/engine/web_apis.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct IntersectionObserverStub { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `observe`, `unobserve`, and `check_intersections` are never used [INFO] [stdout] --> src/engine/web_apis.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl IntersectionObserverStub { [INFO] [stdout] | ----------------------------- associated items in this implementation [INFO] [stdout] 57 | pub fn new() -> Self { Self { entries: Vec::new(), observed: Vec::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 58 | pub fn observe(&mut self, target_id: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn unobserve(&mut self, target_id: usize) { self.observed.retain(|&id| id != target_id); } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 62 | pub fn check_intersections(&self, viewport_rect: &(f32, f32, f32, f32), layouts: &HashMap src/engine/service_workers.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ServiceWorkerState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ServiceWorkerRegistration` is never constructed [INFO] [stdout] --> src/engine/service_workers.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ServiceWorkerRegistration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ServiceWorkerResponse` is never constructed [INFO] [stdout] --> src/engine/service_workers.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct ServiceWorkerResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ServiceWorkerManager` is never constructed [INFO] [stdout] --> src/engine/service_workers.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct ServiceWorkerManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/service_workers.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl ServiceWorkerManager { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 32 | pub fn new() -> Self { Self { registrations: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | [INFO] [stdout] 34 | pub fn register(&mut self, scope: &str, script_url: &str) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn unregister(&mut self, scope: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_registration(&self, scope: &str) -> Option<&ServiceWorkerRegistration> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn get_registrations(&self) -> Vec<&ServiceWorkerRegistration> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn matches_scope(&self, url: &str) -> Option<&ServiceWorkerRegistration> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn intercept_fetch(&self, _url: &str, _method: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn registration_count(&self) -> usize { self.registrations.len() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IdbIndex` is never constructed [INFO] [stdout] --> src/engine/indexeddb.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IdbIndex { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IdbObjectStore` is never constructed [INFO] [stdout] --> src/engine/indexeddb.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct IdbObjectStore { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/indexeddb.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl IdbObjectStore { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 21 | pub fn put(&mut self, key: &str, value: Value) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn get(&self, key: &str) -> Option<&Value> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn delete(&mut self, key: &str) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn count(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn get_all(&self) -> Vec<(&String, &Value)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn create_index(&mut self, name: &str, key_path: &str, unique: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IdbDatabase` is never constructed [INFO] [stdout] --> src/engine/indexeddb.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub struct IdbDatabase { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `create_object_store`, `delete_object_store`, and `object_store_names` are never used [INFO] [stdout] --> src/engine/indexeddb.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl IdbDatabase { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 62 | pub fn create_object_store(&mut self, name: &str, key_path: Option<&str>, auto_increment: bool) -> &mut IdbObjectStore { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn delete_object_store(&mut self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn object_store_names(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IdbManager` is never constructed [INFO] [stdout] --> src/engine/indexeddb.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct IdbManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `make_key`, `open`, `delete_database`, and `list_databases` are never used [INFO] [stdout] --> src/engine/indexeddb.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 86 | impl IdbManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 87 | pub fn new() -> Self { Self { databases: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 88 | [INFO] [stdout] 89 | fn make_key(origin: &str, name: &str) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn open(&mut self, origin: &str, name: &str, version: u32) -> &mut IdbDatabase { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn delete_database(&mut self, origin: &str, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn list_databases(&self, origin: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IceCandidate` is never constructed [INFO] [stdout] --> src/engine/webrtc.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct IceCandidate { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SdpType` is never used [INFO] [stdout] --> src/engine/webrtc.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum SdpType { Offer, Answer, Pranswer, Rollback } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionDescription` is never constructed [INFO] [stdout] --> src/engine/webrtc.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct SessionDescription { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtcSignalingState` is never used [INFO] [stdout] --> src/engine/webrtc.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum RtcSignalingState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtcIceConnectionState` is never used [INFO] [stdout] --> src/engine/webrtc.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | pub enum RtcIceConnectionState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DataChannelState` is never used [INFO] [stdout] --> src/engine/webrtc.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum DataChannelState { Connecting, Open, Closing, Closed } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtcDataChannel` is never constructed [INFO] [stdout] --> src/engine/webrtc.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct RtcDataChannel { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send`, `close`, and `drain_messages` are never used [INFO] [stdout] --> src/engine/webrtc.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl RtcDataChannel { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 42 | pub fn send(&mut self, msg: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn drain_messages(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtcPeerConnection` is never constructed [INFO] [stdout] --> src/engine/webrtc.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct RtcPeerConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/webrtc.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl RtcPeerConnection { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn create_offer(&self) -> SessionDescription { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn create_answer(&self) -> SessionDescription { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn set_local_description(&mut self, desc: SessionDescription) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn set_remote_description(&mut self, desc: SessionDescription) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn add_ice_candidate(&mut self, candidate: IceCandidate) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn create_data_channel(&mut self, label: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn add_stream(&mut self, stream_id: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtcManager` is never constructed [INFO] [stdout] --> src/engine/webrtc.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct RtcManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create_connection`, `get_connection`, `get_connection_mut`, `close_connection`, and `connection_count` are never used [INFO] [stdout] --> src/engine/webrtc.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl RtcManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 157 | pub fn new() -> Self { Self { connections: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 158 | [INFO] [stdout] 159 | pub fn create_connection(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn get_connection(&self, id: &str) -> Option<&RtcPeerConnection> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn get_connection_mut(&mut self, id: &str) -> Option<&mut RtcPeerConnection> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn close_connection(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub fn connection_count(&self) -> usize { self.connections.len() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DisplayMode` is never used [INFO] [stdout] --> src/engine/pwa.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum DisplayMode { Fullscreen, Standalone, MinimalUi, Browser } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ManifestIcon` is never constructed [INFO] [stdout] --> src/engine/pwa.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct ManifestIcon { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebAppManifest` is never constructed [INFO] [stdout] --> src/engine/pwa.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct WebAppManifest { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InstalledPwa` is never constructed [INFO] [stdout] --> src/engine/pwa.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct InstalledPwa { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PwaManager` is never constructed [INFO] [stdout] --> src/engine/pwa.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct PwaManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/pwa.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl PwaManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 65 | pub fn new() -> Self { Self { installed_apps: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 66 | [INFO] [stdout] 67 | pub fn parse_manifest(json: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn detect_manifest_link(html: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn install_app(&mut self, manifest: &WebAppManifest, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn uninstall_app(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn is_installed(&self, url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn list_installed(&self) -> Vec<&InstalledPwa> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn get_display_mode(&self, url: &str) -> DisplayMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CachedResponse` is never constructed [INFO] [stdout] --> src/engine/cache_api.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct CachedResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cache` is never constructed [INFO] [stdout] --> src/engine/cache_api.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Cache { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `put`, `match_request`, `match_all`, `delete`, and `keys` are never used [INFO] [stdout] --> src/engine/cache_api.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Cache { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn put(&mut self, url: &str, status: u16, headers: HashMap, body: Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn match_request(&self, url: &str) -> Option<&CachedResponse> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn match_all(&self, url: &str) -> Vec<&CachedResponse> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn delete(&mut self, url: &str) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn keys(&self) -> Vec<&String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheStorage` is never constructed [INFO] [stdout] --> src/engine/cache_api.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct CacheStorage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `open`, `has`, `delete`, `keys`, and `match_request` are never used [INFO] [stdout] --> src/engine/cache_api.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl CacheStorage { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 55 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn open(&mut self, origin: &str, name: &str) -> &mut Cache { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn has(&self, origin: &str, name: &str) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn delete(&mut self, origin: &str, name: &str) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn keys(&self, origin: &str) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn match_request(&self, origin: &str, url: &str) -> Option<&CachedResponse> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `js_runtime`, `media`, and `interactor` are never read [INFO] [stdout] --> src/app.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct BrowserState { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 43 | pub js_runtime: JsRuntime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 44 | pub media: MediaManager, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 45 | pub drm: DrmFallbackManager, [INFO] [stdout] 46 | pub interactor: PageInteractor, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/net/http.rs:255:20 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn request(&self, url: &str) -> AmniRequestBuilder { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 255 | pub fn request(&self, url: &str) -> AmniRequestBuilder<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `extraction_js` and `settings_json` are never used [INFO] [stdout] --> src/ui/reader.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl ReaderMode { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn extraction_js() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn settings_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CUSTOM` is never used [INFO] [stdout] --> src/ui/emoji.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | static CUSTOM: LazyLock>> = LazyLock::new(|| std::sync::RwLock::new(HashMap::new())); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register` is never used [INFO] [stdout] --> src/ui/emoji.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn register(name: String, glyph: String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve` is never used [INFO] [stdout] --> src/ui/emoji.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn resolve(name: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve_html` is never used [INFO] [stdout] --> src/ui/emoji.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn resolve_html(name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `all_names` is never used [INFO] [stdout] --> src/ui/emoji.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn all_names() -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `query` is never read [INFO] [stdout] --> src/net/ipc.rs:100:18 [INFO] [stdout] | [INFO] [stdout] 100 | FindInPage { query: String }, [INFO] [stdout] | ---------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IpcMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SessionInfo`, `ReaderSettingsResp`, `PermissionsDefaults`, `DevToolsConsole`, `DevToolsNetwork`, and `DrmWebViewRequired` are never constructed [INFO] [stdout] --> src/net/ipc.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 202 | pub enum IpcResponse { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 236 | SessionInfo { data: String }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | ReaderSettingsResp { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 250 | PermissionsDefaults { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | DevToolsConsole { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 257 | #[serde(rename = "devtools_network")] [INFO] [stdout] 258 | DevToolsNetwork { data: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | DrmWebViewRequired { url: String, reason: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpcResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cached_at_epoch` is never read [INFO] [stdout] --> src/net/dns.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DnsRecord { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | pub cached_at_epoch: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DnsRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `url` and `name` are never used [INFO] [stdout] --> src/net/dns.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl DohProvider { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 22 | pub fn url(&self) -> &str { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn name(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DnsAnswer` is never constructed [INFO] [stdout] --> src/net/dns.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct DnsAnswer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DnsResponse` is never constructed [INFO] [stdout] --> src/net/dns.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct DnsResponse { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `last_clean` is never read [INFO] [stdout] --> src/net/dns.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 58 | pub struct DohResolver { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 62 | last_clean: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `resolve`, `query_doh`, `clean_cache`, and `clear_cache` are never used [INFO] [stdout] --> src/net/dns.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl DohResolver { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn resolve(&mut self, hostname: &str) -> Option> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn query_doh(&self, hostname: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | fn clean_cache(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn clear_cache(&mut self) { self.cache.clear(); } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `block_3pc` and `default_auth` are never read [INFO] [stdout] --> src/net/http.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct AmniClient { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | block_3pc: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 28 | user_agent: String, [INFO] [stdout] 29 | default_auth: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `url` and `from_cache` are never read [INFO] [stdout] --> src/net/http.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct AmniResponse { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 35 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 36 | pub from_cache: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/net/http.rs:88:18 [INFO] [stdout] | [INFO] [stdout] 38 | impl AmniClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn post(&self, url: &str, content_type: &str, body: Bytes) -> Result usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_dnt(&mut self, enabled: bool) { self.dnt = enabled; } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 133 | pub fn set_block_3pc(&mut self, enabled: bool) { self.block_3pc = enabled; } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub async fn put(&self, url: &str, content_type: &str, body: Bytes) -> Result Result> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub async fn patch(&self, url: &str, content_type: &str, body: Bytes) -> Result Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub async fn options(&self, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn request(&self, url: &str) -> AmniRequestBuilder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub fn set_bearer_token(&mut self, token: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn set_basic_auth(&mut self, user: &str, pass: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AmniRequestBuilder` is never constructed [INFO] [stdout] --> src/net/http.rs:291:12 [INFO] [stdout] | [INFO] [stdout] 291 | pub struct AmniRequestBuilder<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `method`, `header`, `body`, `timeout`, and `send` are never used [INFO] [stdout] --> src/net/http.rs:302:12 [INFO] [stdout] | [INFO] [stdout] 300 | impl<'a> AmniRequestBuilder<'a> { [INFO] [stdout] | ------------------------------- methods in this implementation [INFO] [stdout] 301 | /// Set the HTTP method (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS). [INFO] [stdout] 302 | pub fn method(mut self, method: &str) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn header(mut self, key: &str, value: &str) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn body(mut self, data: Vec) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn timeout(mut self, duration: Duration) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub async fn send(self) -> Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `header`, `content_type`, `is_json`, `is_html`, `json`, and `is_ok` are never used [INFO] [stdout] --> src/net/http.rs:361:12 [INFO] [stdout] | [INFO] [stdout] 355 | impl AmniResponse { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 361 | pub fn header(&self, name: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn content_type(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn is_json(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | pub fn is_html(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | pub fn json(&self) -> Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn is_ok(&self) -> bool { self.status >= 200 && self.status < 300 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/cookies.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl CookieJar { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn clear_domain(&mut self, domain: &str) { self.cookies.remove(domain); } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 59 | pub fn clear_all(&mut self) { self.cookies.clear(); info!("All cookies cleared"); } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 60 | pub fn domain_count(&self) -> usize { self.cookies.len() } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 61 | pub fn total_count(&self) -> usize { self.cookies.values().map(|v| v.len()).sum() } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 62 | pub fn set_block_third_party(&mut self, block: bool) { self.block_third_party = block; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 63 | pub fn add_allow(&mut self, domain: String) { self.allow_list.push(domain); } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | pub fn add_deny(&mut self, domain: String) { self.deny_list.push(domain); } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn save(&self) -> String { serde_json::to_string(&self.cookies).unwrap_or_default() } [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | pub fn load(data: &str, block_third_party: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `BoxErr` is never used [INFO] [stdout] --> src/net/websocket.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type BoxErr = Box; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WebSocketState` is never used [INFO] [stdout] --> src/net/websocket.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum WebSocketState { Connecting, Open, Closing, Closed } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebSocketFrame` is never constructed [INFO] [stdout] --> src/net/websocket.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct WebSocketFrame { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/websocket.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 17 | impl WebSocketFrame { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub const TEXT: u8 = 1; [INFO] [stdout] | ^^^^ [INFO] [stdout] 19 | pub const BINARY: u8 = 2; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | pub const CLOSE: u8 = 8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | pub const PING: u8 = 9; [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | pub const PONG: u8 = 10; [INFO] [stdout] | ^^^^ [INFO] [stdout] 23 | pub fn text(msg: &str) -> Self { Self { opcode: Self::TEXT, payload: msg.as_bytes().to_vec(), fin: true } } [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | pub fn binary(data: &[u8]) -> Self { Self { opcode: Self::BINARY, payload: data.to_vec(), fin: true } } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | pub fn close() -> Self { Self { opcode: Self::CLOSE, payload: Vec::new(), fin: true } } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 26 | pub fn ping() -> Self { Self { opcode: Self::PING, payload: Vec::new(), fin: true } } [INFO] [stdout] | ^^^^ [INFO] [stdout] 27 | pub fn pong(payload: Vec) -> Self { Self { opcode: Self::PONG, payload, fin: true } } [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | pub fn encode_masked(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn encode_unmasked(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_frame` is never used [INFO] [stdout] --> src/net/websocket.rs:67:14 [INFO] [stdout] | [INFO] [stdout] 67 | pub async fn decode_frame(reader: &mut R) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ws_url` is never used [INFO] [stdout] --> src/net/websocket.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn parse_ws_url(url: &str) -> Result<(String, u16, String, bool), BoxErr> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_ws_key` is never used [INFO] [stdout] --> src/net/websocket.rs:110:4 [INFO] [stdout] | [INFO] [stdout] 110 | fn generate_ws_key() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebSocket` is never constructed [INFO] [stdout] --> src/net/websocket.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct WebSocket { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `connect`, `send_text`, `send_binary`, `send_ping`, `close`, and `recv` are never used [INFO] [stdout] --> src/net/websocket.rs:121:18 [INFO] [stdout] | [INFO] [stdout] 120 | impl WebSocket { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 121 | pub async fn connect(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub async fn send_text(&self, msg: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub async fn send_binary(&self, data: &[u8]) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub async fn send_ping(&self) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub async fn close(&mut self) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub async fn recv(&mut self) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WebSocketManager` is never constructed [INFO] [stdout] --> src/net/websocket.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub struct WebSocketManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/websocket.rs:227:12 [INFO] [stdout] | [INFO] [stdout] 226 | impl WebSocketManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 227 | pub fn new() -> Self { Self { connections: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 228 | pub async fn create(&mut self, id: &str, url: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub async fn close(&mut self, id: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub async fn send(&self, id: &str, msg: &str) -> Result<(), BoxErr> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub async fn recv(&mut self, id: &str) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn state(&self, id: &str) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn ids(&self) -> Vec { self.connections.keys().cloned().collect() } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RequestType` is never used [INFO] [stdout] --> src/net/cors.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum RequestType { Simple, Preflight, Actual } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `allowed_origins`, `allowed_methods`, `allowed_headers`, `max_age`, and `allow_credentials` are never read [INFO] [stdout] --> src/net/cors.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct CorsConfig { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 7 | pub allowed_origins: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | pub allowed_methods: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | pub allowed_headers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | pub max_age: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | pub allow_credentials: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CorsConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CorsResult` is never constructed [INFO] [stdout] --> src/net/cors.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct CorsResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_simple_method` is never used [INFO] [stdout] --> src/net/cors.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn is_simple_method(method: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_simple_header` is never used [INFO] [stdout] --> src/net/cors.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn is_simple_header(name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_simple_content_type` is never used [INFO] [stdout] --> src/net/cors.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn is_simple_content_type(value: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `classify_request` is never used [INFO] [stdout] --> src/net/cors.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn classify_request(method: &str, headers: &[(String, String)], origin: Option<&str>) -> RequestType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PreflightRequest` is never constructed [INFO] [stdout] --> src/net/cors.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub struct PreflightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_preflight_request` is never used [INFO] [stdout] --> src/net/cors.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn build_preflight_request(url: &str, method: &str, request_headers: &[(String, String)], origin: &str) -> PreflightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_response` is never used [INFO] [stdout] --> src/net/cors.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn validate_response(origin: &str, response_headers: &[(String, String)]) -> CorsResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_method_allowed` is never used [INFO] [stdout] --> src/net/cors.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn check_method_allowed(method: &str, response_headers: &[(String, String)]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_headers_allowed` is never used [INFO] [stdout] --> src/net/cors.rs:98:8 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn check_headers_allowed(request_headers: &[(String, String)], response_headers: &[(String, String)]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `allowed_methods`, `allowed_headers`, `inserted`, and `max_age` are never read [INFO] [stdout] --> src/net/cors.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 111 | struct CorsEntry { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 112 | allowed_methods: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 113 | allowed_headers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 114 | inserted: Instant, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 115 | max_age: Duration, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CorsEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `entries` is never read [INFO] [stdout] --> src/net/cors.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CorsCache { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 118 | entries: HashMap<(String, String), CorsEntry>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check`, `store`, `evict_expired`, and `clear` are never used [INFO] [stdout] --> src/net/cors.rs:122:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl CorsCache { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 121 | pub fn new() -> Self { Self { entries: HashMap::new() } } [INFO] [stdout] 122 | pub fn check(&self, origin: &str, url: &str) -> Option<(&[String], &[String])> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn store(&mut self, origin: &str, url: &str, response_headers: &[(String, String)]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn evict_expired(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn clear(&mut self) { self.entries.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `cache` are never read [INFO] [stdout] --> src/net/cors.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct CorsEnforcer { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 153 | pub config: CorsConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 154 | pub cache: CorsCache, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `should_allow` is never used [INFO] [stdout] --> src/net/cors.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 156 | impl CorsEnforcer { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn should_allow(&self, origin: &str, url: &str, method: &str, headers: &[(String, String)]) -> CorsResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `allows_inline_script`, `allows_inline_style`, and `allows_eval` are never used [INFO] [stdout] --> src/net/csp.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl CspPolicy { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn allows_inline_script(&self, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn allows_inline_style(&self, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn allows_eval(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `report` is never read [INFO] [stdout] --> src/net/csp.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 181 | pub struct CspResult { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 182 | pub allowed: bool, [INFO] [stdout] 183 | pub report: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `directive`, `blocked_uri`, and `document_uri` are never read [INFO] [stdout] --> src/net/csp.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct CspViolation { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 187 | pub directive: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 188 | pub blocked_uri: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 189 | pub document_uri: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspViolation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check_inline_script`, `check_inline_style`, and `check_eval` are never used [INFO] [stdout] --> src/net/csp.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl CspEnforcer { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn check_inline_script(&self, nonce: Option<&str>) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn check_inline_style(&self, nonce: Option<&str>) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | pub fn check_eval(&self) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_AGENT` is never used [INFO] [stdout] --> src/storage/config.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const USER_AGENT: &str = "AmniBrowse/0.3 (Privacy-First; Amni-Scient)"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `find_by_url`, `list_folder`, and `search` are never used [INFO] [stdout] --> src/storage/bookmarks.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl BookmarkManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn find_by_url(&self, url: &str) -> Option<&Bookmark> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn list_folder(&self, folder: Option<&str>) -> Vec<&Bookmark> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn search(&self, query: &str) -> Vec<&Bookmark> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_by_date`, `delete_by_url`, `clear_range`, and `to_json` are never used [INFO] [stdout] --> src/storage/history.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl HistoryManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn get_by_date(&self, date: NaiveDate) -> Vec<&HistoryEntry> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn delete_by_url(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn clear_range(&mut self, from: DateTime, to: DateTime) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_json` is never used [INFO] [stdout] --> src/storage/session.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl SessionManager { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `progress_pct` is never used [INFO] [stdout] --> src/storage/downloads.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl DownloadItem { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn progress_pct(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `search_credentials` is never used [INFO] [stdout] --> src/crypto/vault.rs:252:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl PasswordManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn search_credentials(&self, query: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `list_addresses` and `decrypt_card_number` are never used [INFO] [stdout] --> src/crypto/autofill.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl AutofillManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn list_addresses(&self) -> &[AddressProfile] { &self.store.addresses } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn decrypt_card_number(&self, card_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `audio`, `video`, `codec_registry`, and `stream_manager` are never read [INFO] [stdout] --> src/media/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct MediaManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 11 | pub audio: AudioEngine, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub video: VideoEngine, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | pub codec_registry: codecs::CodecRegistry, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | pub stream_manager: stream::MediaStreamManager, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `stop_all`, `is_media_url`, and `capabilities_json` are never used [INFO] [stdout] --> src/media/mod.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl MediaManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn stop_all(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn is_media_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn capabilities_json() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Stopped`, `Playing`, and `Paused` are never constructed [INFO] [stdout] --> src/media/audio.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum PlaybackState { Stopped, Playing, Paused } [INFO] [stdout] | ------------- ^^^^^^^ ^^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `PlaybackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/media/audio.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct AudioTrack { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 9 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | pub state: PlaybackState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | pub duration_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 12 | pub position_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 13 | pub volume: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | pub muted: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AudioTrack` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tracks`, `master_volume`, and `master_muted` are never read [INFO] [stdout] --> src/media/audio.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct AudioEngine { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 18 | tracks: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | master_volume: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 20 | master_muted: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/media/audio.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl AudioEngine { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn load_track(&mut self, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn play(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn pause(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn stop(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn seek(&mut self, id: &str, position_secs: f64) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn set_volume(&mut self, id: &str, volume: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn set_muted(&mut self, id: &str, muted: bool) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn set_master_volume(&mut self, vol: f32) { self.master_volume = vol.clamp(0.0, 1.0); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 101 | pub fn set_master_muted(&mut self, muted: bool) { self.master_muted = muted; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 102 | pub fn master_volume(&self) -> f32 { self.master_volume } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 103 | pub fn master_muted(&self) -> bool { self.master_muted } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 104 | [INFO] [stdout] 105 | pub fn get_track(&self, id: &str) -> Option<&AudioTrack> { self.tracks.get(id) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | pub fn remove_track(&mut self, id: &str) { self.stop(id); self.tracks.remove(id); } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 107 | pub fn active_tracks(&self) -> Vec<&AudioTrack> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn start_playback(&self, _id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn decode_audio_info(data: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn is_available() -> bool { cfg!(feature = "media-playback") } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AudioInfo` is never constructed [INFO] [stdout] --> src/media/audio.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct AudioInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Idle`, `Loading`, `Playing`, `Paused`, `Ended`, and `Error` are never constructed [INFO] [stdout] --> src/media/video.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum VideoState { Idle, Loading, Playing, Paused, Ended, Error(String) } [INFO] [stdout] | ---------- ^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `VideoState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/media/video.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct VideoTrack { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 8 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 9 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | pub state: VideoState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | pub duration_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 14 | pub position_secs: f64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 15 | pub volume: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | pub muted: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | pub frame_data: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VideoTrack` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tracks` is never read [INFO] [stdout] --> src/media/video.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct VideoEngine { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 21 | tracks: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/media/video.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl VideoEngine { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn load_track(&mut self, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn play(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn pause(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn stop(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn seek(&mut self, id: &str, pos: f64) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_volume(&mut self, id: &str, vol: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn set_muted(&mut self, id: &str, muted: bool) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn get_track(&self, id: &str) -> Option<&VideoTrack> { self.tracks.get(id) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 69 | [INFO] [stdout] 70 | pub fn remove_track(&mut self, id: &str) { self.tracks.remove(id); } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 71 | [INFO] [stdout] 72 | pub fn extract_poster_frame(data: &[u8]) -> Option<(u32, u32, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn supported_containers() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn is_video_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `name` are never read [INFO] [stdout] --> src/media/codecs.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct CodecProfile { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 6 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 7 | pub codec_type: CodecType, [INFO] [stdout] 8 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CodecProfile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `label` and `muted` are never read [INFO] [stdout] --> src/media/stream.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct MediaStreamTrack { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | pub enabled: bool, [INFO] [stdout] 18 | pub muted: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MediaStreamTrack` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/media/stream.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct MediaStream { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 24 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `MediaStream` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `device_id`, `label`, and `group_id` are never read [INFO] [stdout] --> src/media/stream.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct MediaDeviceInfo { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 30 | pub device_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 31 | pub kind: DeviceKind, [INFO] [stdout] 32 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 33 | pub group_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MediaDeviceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_display_media` is never used [INFO] [stdout] --> src/media/stream.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl MediaStreamManager { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_display_media(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Sequence` is never constructed [INFO] [stdout] --> src/media/mse.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum AppendMode { Segments, Sequence } [INFO] [stdout] | ---------- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variant in this enum [INFO] [stdout] | [INFO] [stdout] = note: `AppendMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `mime_type`, and `mode` are never read [INFO] [stdout] --> src/media/mse.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SourceBuffer { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 11 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 12 | pub mime_type: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | pub mode: AppendMode, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SourceBuffer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `abort` is never used [INFO] [stdout] --> src/media/mse.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl SourceBuffer { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn abort(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active_source_buffers` is never used [INFO] [stdout] --> src/media/mse.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 82 | impl MediaSource { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn active_source_buffers(&self) -> Vec<&SourceBuffer> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `private_tab_count` and `has_private_tabs` are never used [INFO] [stdout] --> src/engine/tabs.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 109 | impl TabManager { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn private_tab_count(&self) -> usize { self.tabs.iter().filter(|t| t.is_private).count() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 161 | pub fn has_private_tabs(&self) -> bool { self.tabs.iter().any(|t| t.is_private) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `is_blocked_url` is never used [INFO] [stdout] --> src/engine/adblocker.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl AdBlocker { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn is_blocked_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `install_from_dir`, `copy_dir_recursive`, `get_content_scripts`, `url_matches_pattern`, and `list` are never used [INFO] [stdout] --> src/engine/extensions.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl ExtensionManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn install_from_dir(&mut self, source: &PathBuf) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | fn copy_dir_recursive(src: &PathBuf, dst: &PathBuf) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_content_scripts(&self, url: &str) -> Vec<(String, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | fn url_matches_pattern(url: &str, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn list(&self) -> &[Extension] { &self.registry.extensions } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_permission`, `reset_all`, and `defaults_json` are never used [INFO] [stdout] --> src/engine/permissions.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl PermissionsManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_permission(&self, url: &str, perm: &PermissionType) -> PermissionState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn reset_all(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn defaults_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `log_network`, `console_json`, and `network_json` are never used [INFO] [stdout] --> src/engine/devtools.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl DevToolsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn log_network(&mut self, entry: NetworkEntry) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn console_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn network_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomNode` is never constructed [INFO] [stdout] --> src/engine/dom.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DomNode<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/dom.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl AmniDom { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn root(&self) -> &Handle { &self.dom.document } [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn query_by_tag(&self, tag: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn find_by_tag(&self, handle: &Handle, tag: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn query_by_id(&self, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | fn find_by_id(&self, handle: &Handle, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn query_selector(&self, selector: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn query_selector_all(&self, selector: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn query_by_class(&self, class: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn query_by_attr(&self, attr: &str, value: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 241 | fn find_first_simple(&self, handle: &Handle, sel: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | fn find_all_simple(&self, handle: &Handle, sel: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn matches_simple(handle: &Handle, sel: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | fn find_by_class(&self, handle: &Handle, class: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | fn find_by_attr_val(&self, handle: &Handle, attr: &str, value: &str, results: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_leaf_with_text` and `clear` are never used [INFO] [stdout] --> src/engine/layout.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl LayoutEngine { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn add_leaf_with_text(&mut self, id: usize, style: &ComputedStyle, text: TextInfo) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn clear(&mut self) { self.tree.clear(); self.nodes.clear(); self.results.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `important` is never read [INFO] [stdout] --> src/engine/style.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Declaration { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub important: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Declaration` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `image_cache`, `cors`, `csp`, and `canvas_registry` are never read [INFO] [stdout] --> src/engine/pipeline.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct RenderPipeline { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | pub image_cache: ImageCache, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | pub cors: CorsEnforcer, [INFO] [stdout] | ^^^^ [INFO] [stdout] 20 | pub csp: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] 21 | pub canvas_registry: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `css_sources` is never read [INFO] [stdout] --> src/engine/pipeline.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PageResult { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub css_sources: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LayoutResult` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct LayoutResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/pipeline.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl RenderPipeline { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn parse_and_layout(html: &str, css_sources: &[&str], vw: f32, vh: f32) -> LayoutResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | fn build_tree(handle: &Handle, sheets: &[StyleSheet], engine: &mut LayoutEngine, styles: &mut HashMap, co... [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | fn apply_tag_font_defaults(tag: &str, cs: &mut ComputedStyle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | fn selector_matches(selectors: &[String], tag: &str, id: &str, classes: &[&str]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn render_to_semantic_html(html: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn extract_page_meta(html: &str) -> PageSummary { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub async fn execute_fetch_requests(&self, requests: Vec) -> Vec<(u32, u16, HashMap Result<(PageResult, LayoutResult), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | pub fn render_to_pixels(&mut self, html: &str, css_sources: &[&str], vw: f32, vh: f32) -> RenderedPage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub async fn fetch_and_render(&mut self, url: &str, vw: f32, vh: f32) -> Result<(PageResult, RenderedPage), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderedPage` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:374:12 [INFO] [stdout] | [INFO] [stdout] 374 | pub struct RenderedPage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `event_dispatcher`, `focus_manager`, `form_state`, `js_bridge`, and `current_layouts` are never read [INFO] [stdout] --> src/engine/pipeline.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 383 | pub struct PageInteractor { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 384 | pub event_dispatcher: EventDispatcher, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 385 | pub focus_manager: FocusManager, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 386 | pub form_state: FormState, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 387 | pub js_bridge: crate::engine::js_bridge::JsDomBridge, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 388 | pub current_layouts: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/pipeline.rs:400:12 [INFO] [stdout] | [INFO] [stdout] 390 | impl PageInteractor { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn dispatch_click(&mut self, x: f32, y: f32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | pub fn dispatch_key(&mut self, key: &str, code: u32, shift: bool, ctrl: bool, alt: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | pub fn focus_node(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn tab_focus_next(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 420 | pub fn submit_form(&self, form_id: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn set_page_origin(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 429 | pub fn drain_js_fetches(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_scripts` is never used [INFO] [stdout] --> src/engine/pipeline.rs:434:8 [INFO] [stdout] | [INFO] [stdout] 434 | pub fn extract_scripts(html: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_external_script_urls` is never used [INFO] [stdout] --> src/engine/pipeline.rs:441:8 [INFO] [stdout] | [INFO] [stdout] 441 | pub fn extract_external_script_urls(html: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_external_scripts` is never used [INFO] [stdout] --> src/engine/pipeline.rs:448:4 [INFO] [stdout] | [INFO] [stdout] 448 | fn collect_external_scripts(handle: &Handle, out: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_inline_scripts` is never used [INFO] [stdout] --> src/engine/pipeline.rs:460:4 [INFO] [stdout] | [INFO] [stdout] 460 | fn collect_inline_scripts(handle: &Handle, out: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rect` and `color` are never read [INFO] [stdout] --> src/engine/paint.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | FillRect { rect: PaintRect, color: [u8; 4] }, [INFO] [stdout] | -------- ^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `PaintCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x`, `y`, `text`, `font_size`, `color`, and `max_width` are never read [INFO] [stdout] --> src/engine/paint.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | DrawText { x: f32, y: f32, text: String, font_size: f32, color: [u8; 4], max_width: f32 }, [INFO] [stdout] | -------- ^ ^ ^^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `PaintCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rect`, `image_data`, `img_w`, and `img_h` are never read [INFO] [stdout] --> src/engine/paint.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | DrawImage { rect: PaintRect, image_data: Option>, img_w: u32, img_h: u32 }, [INFO] [stdout] | --------- ^^^^ ^^^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `PaintCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rect` is never read [INFO] [stdout] --> src/engine/paint.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | PushClip { rect: PaintRect }, [INFO] [stdout] | -------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `PaintCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `DrawCanvas`, `DrawSvg`, `DrawVideo`, `DrawAudio`, and `DrawIframe` are never constructed [INFO] [stdout] --> src/engine/paint.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum PaintCommand { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 13 | DrawCanvas { rect: PaintRect, canvas_id: usize }, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 14 | DrawSvg { rect: PaintRect, svg_content: String }, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | DrawVideo { rect: PaintRect, video_id: usize }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 16 | DrawAudio { rect: PaintRect, audio_id: usize }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | DrawIframe { rect: PaintRect, src: String }, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PaintCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x`, `y`, `w`, and `h` are never read [INFO] [stdout] --> src/engine/paint.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct PaintRect { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 22 | pub x: f32, [INFO] [stdout] | ^ [INFO] [stdout] 23 | pub y: f32, [INFO] [stdout] | ^ [INFO] [stdout] 24 | pub w: f32, [INFO] [stdout] | ^ [INFO] [stdout] 25 | pub h: f32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `PaintRect` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width` and `height` are never read [INFO] [stdout] --> src/engine/paint.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct DisplayList { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 36 | pub commands: Vec, [INFO] [stdout] 37 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 38 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DisplayList` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `iframe_src` are never read [INFO] [stdout] --> src/engine/paint.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct RenderNode { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 47 | pub id: usize, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub iframe_src: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_display_list` is never used [INFO] [stdout] --> src/engine/paint.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn build_display_list( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `color_to_rgba` is never used [INFO] [stdout] --> src/engine/paint.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn color_to_rgba(c: &Color) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SoftwareRenderer` is never constructed [INFO] [stdout] --> src/engine/paint.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | pub struct SoftwareRenderer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/paint.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 231 | impl SoftwareRenderer { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 232 | pub fn new(width: u32, height: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | pub fn render(&mut self, dl: &DisplayList) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn is_clipped(&self, x: f32, y: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn set_pixel(&mut self, x: i32, y: i32, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | fn fill_rect(&mut self, rect: &PaintRect, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 336 | fn draw_text(&mut self, x: f32, y: f32, text: &str, font_size: f32, color: &[u8; 4], max_width: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 366 | fn draw_image(&mut self, rect: &PaintRect, rgba: &[u8], img_w: u32, img_h: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 388 | fn draw_border(&mut self, rect: &PaintRect, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | fn draw_play_icon(&mut self, rect: &PaintRect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn clear(&mut self, color: [u8; 4]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn render_with_resources(&mut self, dl: &DisplayList, canvases: &HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 468 | fn render_canvas(&mut self, rect: &PaintRect, canvas: &crate::engine::canvas::Canvas2D) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | fn render_svg(&mut self, rect: &PaintRect, svg_content: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 541 | pub fn pixels(&self) -> &[u8] { &self.pixels } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShapedLine` is never constructed [INFO] [stdout] --> src/engine/text.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ShapedLine { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShapedText` is never constructed [INFO] [stdout] --> src/engine/text.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ShapedText { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `layout_text` and `char_width` are never used [INFO] [stdout] --> src/engine/text.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl TextShaper { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn layout_text(&self, text: &str, font_size: f32, max_width: f32) -> ShapedText { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn char_width(&self, ch: char, font_size: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, and `rgba_data` are never read [INFO] [stdout] --> src/engine/image_decode.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CachedImage { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 4 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | pub rgba_data: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `entries` and `max_entries` are never read [INFO] [stdout] --> src/engine/image_decode.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ImageCache { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 10 | entries: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | max_entries: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/image_decode.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl ImageCache { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn decode_bytes(&mut self, url: &str, data: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn decode_and_resize(&mut self, url: &str, data: &[u8], max_dim: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get(&self, url: &str) -> Option<&CachedImage> { self.entries.get(url) } [INFO] [stdout] | ^^^ [INFO] [stdout] 51 | [INFO] [stdout] 52 | pub fn contains(&self, url: &str) -> bool { self.entries.contains_key(url) } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 53 | [INFO] [stdout] 54 | pub fn remove(&mut self, url: &str) { self.entries.remove(url); } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 55 | [INFO] [stdout] 56 | pub fn clear(&mut self) { self.entries.clear(); } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 57 | [INFO] [stdout] 58 | pub fn len(&self) -> usize { self.entries.len() } [INFO] [stdout] | ^^^ [INFO] [stdout] 59 | [INFO] [stdout] 60 | pub fn decode_file(&mut self, path: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn create_solid_color(width: u32, height: u32, r: u8, g: u8, b: u8, a: u8) -> CachedImage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn supported_formats() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_format` is never used [INFO] [stdout] --> src/engine/image_decode.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn detect_format(data: &[u8]) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `console_log` and `globals` are never read [INFO] [stdout] --> src/engine/js.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct JsRuntime { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 8 | console_log: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 9 | globals: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `level`, `message`, and `timestamp` are never read [INFO] [stdout] --> src/engine/js.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ConsoleEntry { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 14 | pub level: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 15 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | pub timestamp: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConsoleEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsEvalResult` is never constructed [INFO] [stdout] --> src/engine/js.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct JsEvalResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `eval`, `eval_dom_script`, `drain_console`, `set_global`, `reset`, and `is_available` are never used [INFO] [stdout] --> src/engine/js.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl JsRuntime { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn eval(&mut self, script: &str) -> JsEvalResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn eval_dom_script(&mut self, script: &str, document_json: &str) -> JsEvalResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn drain_console(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn set_global(&mut self, name: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn is_available() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEARTBEAT` is never used [INFO] [stdout] --> src/engine/base17.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const HEARTBEAT: u16 = 259; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ERROR_SLOT` is never used [INFO] [stdout] --> src/engine/base17.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const ERROR_SLOT: u16 = 260; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IncompleteVarint` and `ChecksumMismatch` are never constructed [INFO] [stdout] --> src/engine/base17.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub enum CodecError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 36 | IncompleteVarint, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | ChecksumMismatch { expected: u8, got: u8 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CodecError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_f32` is never used [INFO] [stdout] --> src/engine/base17.rs:176:8 [INFO] [stdout] | [INFO] [stdout] 176 | pub fn encode_f32(v: f32) -> [u8; 8] { encode_u32(v.to_bits()) } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_f32` is never used [INFO] [stdout] --> src/engine/base17.rs:178:8 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn decode_f32(sept: &[u8]) -> Result<(f32, usize), CodecError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `feed_slice`, `value`, and `reset` are never used [INFO] [stdout] --> src/engine/base17.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 207 | impl Checksummer { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn feed_slice(&mut self, digits: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn value(&self) -> u8 { self.sum as u8 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn reset(&mut self) { self.sum = 0; } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_heartbeat` and `len` are never used [INFO] [stdout] --> src/engine/base17.rs:273:12 [INFO] [stdout] | [INFO] [stdout] 236 | impl StreamEncoder { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn write_heartbeat(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn len(&self) -> usize { self.buffer.len() } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `read_bytes`, `remaining`, and `verify_checksum` are never used [INFO] [stdout] --> src/engine/base17.rs:339:12 [INFO] [stdout] | [INFO] [stdout] 295 | impl<'a> StreamDecoder<'a> { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 339 | pub fn read_bytes(&mut self, n: usize) -> Result, CodecError> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | pub fn remaining(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn verify_checksum(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `category` is never used [INFO] [stdout] --> src/engine/amni_ir.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl Opcode { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn category(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_layer_id` is never read [INFO] [stdout] --> src/engine/amni_ir.rs:252:5 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct IrBuilder { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 252 | next_layer_id: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/amni_ir.rs:270:12 [INFO] [stdout] | [INFO] [stdout] 256 | impl IrBuilder { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 270 | pub fn append_child(&mut self, parent: u32, child: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn set_attr(&mut self, node: u32, key: &str, value: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn set_text(&mut self, node: u32, text: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn set_margin(&mut self, node: u32, t: f32, r: f32, b: f32, l: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn set_padding(&mut self, node: u32, t: f32, r: f32, b: f32, l: f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 297 | pub fn paint_clip(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 300 | pub fn paint_unclip(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn push_layer(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn pop_layer(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `tag_hash` are never read [INFO] [stdout] --> src/engine/ir_executor.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | struct IrNode { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 11 | id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 12 | tag_hash: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `textures` is never read [INFO] [stdout] --> src/engine/ir_executor.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct IrExecutor { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | textures: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `width`, and `height` are never read [INFO] [stdout] --> src/engine/ir_executor.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct TextureRef { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 53 | pub id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 54 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 55 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TextureRef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `display_list`, `frame_num`, `navigate_requests`, and `resource_requests` are never read [INFO] [stdout] --> src/engine/ir_executor.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 59 | pub struct ExecutionResult { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 60 | pub display_list: DisplayList, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub frame_num: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 65 | pub navigate_requests: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 66 | pub resource_requests: Vec<(String, u8)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExecutionResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/ir_executor.rs:300:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl IrExecutor { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 300 | pub fn scroll_to(&mut self, x: f32, y: f32) { self.scroll_x = x; self.scroll_y = y; } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 301 | pub fn scroll_by(&mut self, dx: f32, dy: f32) { self.scroll_x += dx; self.scroll_y += dy; } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 302 | pub fn viewport(&self) -> (f32, f32) { (self.viewport_w, self.viewport_h) } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 303 | pub fn scroll_pos(&self) -> (f32, f32) { (self.scroll_x, self.scroll_y) } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 304 | [INFO] [stdout] 305 | pub fn register_texture(&mut self, id: u32, width: u32, height: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | pub fn get_node_text(&self, id: u32) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn get_node_attr(&self, id: u32, key: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `memory_budget_mb` and `watchdog_timeout_ms` are never read [INFO] [stdout] --> src/engine/shunt_sandbox.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct ShuntConfig { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 20 | pub memory_budget_mb: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | pub watchdog_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ShuntConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/engine/shunt_sandbox.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct InProcessShunt { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 34 | state: ShuntState, [INFO] [stdout] 35 | config: ShuntConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_cached`, `clear_cache`, and `reset` are never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl InProcessShunt { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn get_cached(&self, url: &str) -> Option<&IrProgram> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn clear_cache(&mut self) { self.ir_cache.clear(); } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 108 | [INFO] [stdout] 109 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_alive` and `state` are never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 177 | impl ProcessShunt { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn is_alive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn state(&self) -> &ShuntState { &self.state } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `process_to_wire`, `state`, `crash_count`, `reset`, and `stats_json` are never used [INFO] [stdout] --> src/engine/shunt_sandbox.rs:286:12 [INFO] [stdout] | [INFO] [stdout] 244 | impl ShuntManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn process_to_wire(&mut self, url: &str, html: &str, css: &[&str]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn state(&self) -> &ShuntState { self.in_process.state() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 292 | [INFO] [stdout] 293 | pub fn crash_count(&self) -> u32 { self.crash_count } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 294 | [INFO] [stdout] 295 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | pub fn stats_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomEvent` is never constructed [INFO] [stdout] --> src/engine/js_bridge.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DomEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mutation_type` and `node_id` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct DomMutation { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 17 | pub mutation_type: MutationType, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 18 | pub node_id: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomMutation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/engine/js_bridge.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub enum MutationType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 23 | SetText(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 24 | SetAttribute(String, String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 25 | RemoveAttribute(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | SetStyle(String, String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 27 | AppendChild(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 28 | RemoveChild(usize), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 29 | SetInnerHtml(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MutationType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `callback_code`, `interval_ms`, `is_interval`, and `next_fire_ms` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct TimerEntry { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 34 | pub id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 35 | pub callback_code: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 36 | pub interval_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 37 | pub is_interval: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 38 | pub next_fire_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TimerEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `url`, `method`, `headers`, and `body` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct FetchRequest { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 43 | pub id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 44 | pub url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 45 | pub method: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 46 | pub headers: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | pub body: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FetchRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `body_id`, `head_id`, and `parent_map` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 51 | struct DomSnapshot { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 52 | nodes: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | body_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 54 | head_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 55 | parent_map: HashMap, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tag`, `text`, `attrs`, `styles`, `children`, and `classes` are never read [INFO] [stdout] --> src/engine/js_bridge.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 59 | struct SnapshotNode { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 60 | tag: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 61 | text: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 62 | attrs: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 63 | styles: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | children: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 65 | classes: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SnapshotNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/engine/js_bridge.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct JsDomBridge { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 69 | runtime: JsRuntime, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 70 | event_handlers: HashMap<(usize, String), Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 71 | pending_mutations: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | timers: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 73 | next_timer_id: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 74 | fetch_queue: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 75 | next_fetch_id: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 76 | pending_fetches: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | dom_snapshot: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 78 | local_storage: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 79 | session_storage: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 80 | current_origin: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/js_bridge.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl JsDomBridge { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn set_origin(&mut self, origin: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn snapshot_dom(&mut self, tree: &RenderTree) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn build_nodes_json(snap: &DomSnapshot) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | fn build_storage_json(storage: &HashMap>, origin: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | fn inject_dom_api(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 479 | pub fn exec_script(&mut self, script: &str) -> JsExecResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 496 | fn collect_mutations(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 551 | fn collect_timers(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 570 | fn collect_fetches(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 596 | fn collect_storage_mutations(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 626 | pub fn dispatch_event(&mut self, event: &DomEvent) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 648 | pub fn tick_timers(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 677 | pub fn resolve_fetch(&mut self, id: u32, status: u16, headers: HashMap, body: String) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 705 | pub fn apply_mutations(tree: &mut RenderTree, mutations: &[DomMutation]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | pub fn pending_fetch_count(&self) -> usize { self.fetch_queue.len() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 726 | pub fn timer_count(&self) -> usize { self.timers.len() } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 727 | [INFO] [stdout] 728 | pub fn drain_fetch_queue(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn drain_pending_fetches(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 736 | pub fn get_local_storage(&self, origin: &str) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 741 | pub fn get_session_storage(&self, origin: &str) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 746 | pub fn clear_session_storage(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 750 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsExecResult` is never constructed [INFO] [stdout] --> src/engine/js_bridge.rs:763:12 [INFO] [stdout] | [INFO] [stdout] 763 | pub struct JsExecResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InlineBox` and `LineBreak` are never constructed [INFO] [stdout] --> src/engine/inline_layout.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum InlineItem { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 9 | Text { text: String, style: InlineStyle }, [INFO] [stdout] 10 | InlineBox { width: f32, height: f32, node_id: usize }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | LineBreak, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InlineItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `font_weight`, `color`, `is_bold`, and `is_italic` are never read [INFO] [stdout] --> src/engine/inline_layout.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct InlineStyle { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 16 | pub font_size: f32, [INFO] [stdout] 17 | pub font_weight: u16, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | pub line_height: f32, [INFO] [stdout] 19 | pub color: [u8; 4], [INFO] [stdout] | ^^^^^ [INFO] [stdout] 20 | pub is_bold: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 21 | pub is_italic: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InlineStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_computed` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl InlineStyle { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 25 | pub fn from_computed(cs: &ComputedStyle) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `text`, `style`, and `node_id` are never read [INFO] [stdout] --> src/engine/inline_layout.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct PositionedFragment { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | pub width: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 42 | pub height: f32, [INFO] [stdout] 43 | pub text: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 44 | pub style: InlineStyle, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 45 | pub node_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PositionedFragment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `y`, `width`, `height`, and `baseline` are never read [INFO] [stdout] --> src/engine/inline_layout.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct LineBox { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 50 | pub y: f32, [INFO] [stdout] | ^ [INFO] [stdout] 51 | pub width: f32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 52 | pub height: f32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | pub baseline: f32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineBox` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `all_fragments` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 63 | impl InlineFormattingContext { [INFO] [stdout] | ---------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn all_fragments(&self) -> Vec<&PositionedFragment> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_inline_items` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | pub fn extract_inline_items( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_inline_recursive` is never used [INFO] [stdout] --> src/engine/inline_layout.rs:209:4 [INFO] [stdout] | [INFO] [stdout] 209 | fn extract_inline_recursive( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transform` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Transform { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/css_advanced.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Transform { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 10 | pub fn translate(tx: f32, ty: f32) -> Self { Self { matrix: [1.0, 0.0, 0.0, 1.0, tx, ty] } } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | pub fn rotate(deg: f32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn scale(sx: f32, sy: f32) -> Self { Self { matrix: [sx, 0.0, 0.0, sy, 0.0, 0.0] } } [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | pub fn skew(ax: f32, ay: f32) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn matrix(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32) -> Self { Self { matrix: [a, b, c, d, e, f] } } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 23 | pub fn apply_to_point(&self, x: f32, y: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn compose(&self, other: &Transform) -> Transform { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EaseIn`, `EaseOut`, `EaseInOut`, and `CubicBezier` are never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub enum TimingFunction { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 41 | EaseIn, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | EaseOut, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 43 | EaseInOut, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 44 | CubicBezier(f32, f32, f32, f32), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TimingFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transition` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct Transition { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `interpolate` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl Transition { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 82 | pub fn interpolate(&self, t: f32) -> f32 { self.timing.interpolate(t) } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Reverse` and `AlternateReverse` are never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:85:39 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum AnimationDirection { Normal, Reverse, Alternate, AlternateReverse } [INFO] [stdout] | ------------------ ^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `AnimationDirection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Forwards`, `Backwards`, and `Both` are never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum FillMode { None, Forwards, Backwards, Both } [INFO] [stdout] | -------- ^^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `FillMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Keyframe` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct Keyframe { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Animation` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct Animation { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compute_value_at` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl Animation { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 104 | pub fn compute_value_at(&self, property: &str, progress: f32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Gradient` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub enum Gradient { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `sample_color_at` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 149 | impl Gradient { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 150 | pub fn sample_color_at(&self, position: f32) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lerp_u8` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:178:4 [INFO] [stdout] | [INFO] [stdout] 178 | fn lerp_u8(a: u8, b: u8, t: f32) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BoxShadow` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct BoxShadow { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TextShadow` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | pub struct TextShadow { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Filter` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:198:10 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum Filter { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CssVars` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:247:12 [INFO] [stdout] | [INFO] [stdout] 247 | pub struct CssVars { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set`, `resolve_var`, and `resolve_value` are never used [INFO] [stdout] --> src/engine/css_advanced.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 250 | impl CssVars { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 251 | pub fn new() -> Self { Self { vars: HashMap::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 252 | pub fn set(&mut self, name: &str, value: &str) { self.vars.insert(name.to_string(), value.to_string()); } [INFO] [stdout] | ^^^ [INFO] [stdout] 253 | pub fn resolve_var(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn resolve_value(&self, value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_calc` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | pub fn parse_calc(expr: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eval_calc_expr` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:277:4 [INFO] [stdout] | [INFO] [stdout] 277 | fn eval_calc_expr(expr: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strip_parens` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:321:4 [INFO] [stdout] | [INFO] [stdout] 321 | fn strip_parens(s: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_calc_value` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:337:4 [INFO] [stdout] | [INFO] [stdout] 337 | fn parse_calc_value(s: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_transform` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:347:8 [INFO] [stdout] | [INFO] [stdout] 347 | pub fn parse_transform(s: &str) -> Transform { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_gradient` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn parse_gradient(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `split_gradient_args` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:437:4 [INFO] [stdout] | [INFO] [stdout] 437 | fn split_gradient_args(s: &str) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_color_stop` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:452:4 [INFO] [stdout] | [INFO] [stdout] 452 | fn parse_color_stop(s: &str) -> ([u8; 4], Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_stop_position` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:479:4 [INFO] [stdout] | [INFO] [stdout] 479 | fn parse_stop_position(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_hex_color` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:485:4 [INFO] [stdout] | [INFO] [stdout] 485 | fn parse_hex_color(s: &str) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_rgb_color` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:507:4 [INFO] [stdout] | [INFO] [stdout] 507 | fn parse_rgb_color(s: &str) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_box_shadow` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:520:8 [INFO] [stdout] | [INFO] [stdout] 520 | pub fn parse_box_shadow(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_filter` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:554:8 [INFO] [stdout] | [INFO] [stdout] 554 | pub fn parse_filter(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_transition` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:592:8 [INFO] [stdout] | [INFO] [stdout] 592 | pub fn parse_transition(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time_ms` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:603:4 [INFO] [stdout] | [INFO] [stdout] 603 | fn parse_time_ms(s: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_timing_fn` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:608:4 [INFO] [stdout] | [INFO] [stdout] 608 | fn parse_timing_fn(s: &str) -> TimingFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MediaQueryList` is never constructed [INFO] [stdout] --> src/engine/css_advanced.rs:625:12 [INFO] [stdout] | [INFO] [stdout] 625 | pub struct MediaQueryList { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `evaluate_all` is never used [INFO] [stdout] --> src/engine/css_advanced.rs:629:12 [INFO] [stdout] | [INFO] [stdout] 628 | impl MediaQueryList { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 629 | pub fn evaluate_all(&self, vw: f32, vh: f32, is_dark: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `node_id` and `property` are never read [INFO] [stdout] --> src/engine/animations.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct AnimationUpdate { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 9 | pub node_id: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | pub property: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AnimationUpdate` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `node_id` is never read [INFO] [stdout] --> src/engine/animations.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ActiveAnimation { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 44 | pub node_id: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveAnimation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `has_active_animations` and `cancel_animations` are never used [INFO] [stdout] --> src/engine/animations.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 139 | impl AnimationController { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 229 | pub fn has_active_animations(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn cancel_animations(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate` is never used [INFO] [stdout] --> src/engine/animations.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn evaluate(easing: &TimingFunction, t: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/engine/forms.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum FormElementType { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] 5 | TextInput, Password, Email, Number, Search, Tel, Url, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^ ^^^^^^ ^^^ ^^^ [INFO] [stdout] 6 | Textarea, Checkbox, Radio, Select, Button, Submit, Reset, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] 7 | File, Range, Color, Date, Hidden, [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^ ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FormElementType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value`, `label`, and `selected` are never read [INFO] [stdout] --> src/engine/forms.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SelectOption { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 11 | pub value: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | pub label: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | pub selected: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SelectOption` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/engine/forms.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct FormElement { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 17 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 18 | pub element_type: FormElementType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 19 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 20 | pub value: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 21 | pub placeholder: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 22 | pub checked: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 23 | pub disabled: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 24 | pub readonly: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 25 | pub min: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] 26 | pub max: f32, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | pub step: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | pub options: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 29 | pub selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 30 | pub focus: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 31 | pub cursor_pos: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 32 | pub selection_start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | pub selection_end: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 34 | pub form_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 35 | pub scroll_offset: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FormElement` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/engine/forms.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl FormElement { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 38 | pub fn new(id: &str, element_type: FormElementType) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValidationResult` is never constructed [INFO] [stdout] --> src/engine/forms.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `elements`, `active_form_id`, and `focused_element_id` are never read [INFO] [stdout] --> src/engine/forms.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct FormState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 54 | pub elements: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub active_form_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 56 | pub focused_element_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/forms.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl FormState { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn add_element(&mut self, elem: FormElement) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn handle_key_input(&mut self, element_id: &str, key: &str, shift: bool, ctrl: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn handle_click(&mut self, element_id: &str, _x: f32, _y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn handle_mouse_down(&mut self, element_id: &str, x: f32, _y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn handle_mouse_up(&mut self, _element_id: &str, _x: f32, _y: f32) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 223 | pub fn submit_form(&self, form_id: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn validate_element(&self, id: &str) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_text_input` is never used [INFO] [stdout] --> src/engine/forms.rs:283:8 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn render_text_input(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_button` is never used [INFO] [stdout] --> src/engine/forms.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | pub fn render_button(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_checkbox` is never used [INFO] [stdout] --> src/engine/forms.rs:341:8 [INFO] [stdout] | [INFO] [stdout] 341 | pub fn render_checkbox(elem: &FormElement, x: f32, y: f32, size: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_radio` is never used [INFO] [stdout] --> src/engine/forms.rs:362:8 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn render_radio(elem: &FormElement, x: f32, y: f32, size: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_select` is never used [INFO] [stdout] --> src/engine/forms.rs:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | pub fn render_select(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_textarea` is never used [INFO] [stdout] --> src/engine/forms.rs:402:8 [INFO] [stdout] | [INFO] [stdout] 402 | pub fn render_textarea(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_range` is never used [INFO] [stdout] --> src/engine/forms.rs:448:8 [INFO] [stdout] | [INFO] [stdout] 448 | pub fn render_range(elem: &FormElement, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_progress` is never used [INFO] [stdout] --> src/engine/forms.rs:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | pub fn render_progress(value: f32, max: f32, x: f32, y: f32, w: f32, h: f32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `None`, `Capture`, `AtTarget`, and `Bubble` are never constructed [INFO] [stdout] --> src/engine/events.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum EventPhase { None, Capture, AtTarget, Bubble } [INFO] [stdout] | ---------- ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `EventPhase` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/engine/events.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum EventType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 7 | Click, DblClick, MouseDown, MouseUp, MouseMove, MouseEnter, MouseLeave, [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] 8 | MouseOver, MouseOut, KeyDown, KeyUp, KeyPress, Focus, Blur, FocusIn, FocusOut, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^ [INFO] [stdout] 9 | Input, Change, Submit, Reset, Scroll, Resize, Load, Unload, Error, [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^^ ^^^^^ ^^^^^^ ^^^^^^ ^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] 10 | DOMContentLoaded, Wheel, ContextMenu, TouchStart, TouchEnd, TouchMove, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 11 | DragStart, Drag, DragEnd, Drop, Paste, Copy, Cut, [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bubbles` and `cancelable` are never used [INFO] [stdout] --> src/engine/events.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl EventType { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 14 | pub fn bubbles(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn cancelable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomEvent` is never constructed [INFO] [stdout] --> src/engine/events.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct DomEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `mouse`, `keyboard`, `prevent_default`, `stop_propagation`, and `stop_immediate_propagation` are never used [INFO] [stdout] --> src/engine/events.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl DomEvent { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 53 | pub fn new(event_type: EventType, target: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn mouse(event_type: EventType, target: usize, x: f32, y: f32, button: u8) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn keyboard(event_type: EventType, target: usize, key: &str, code: u32, shift: bool, ctrl: bool, alt: bool, meta: bool) -> S... [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn prevent_default(&mut self) { if self.cancelable { self.default_prevented = true; } } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 76 | pub fn stop_propagation(&mut self) { self.propagation_stopped = true; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | pub fn stop_immediate_propagation(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `callback_id`, `phase`, and `once` are never read [INFO] [stdout] --> src/engine/events.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct EventHandler { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 84 | pub callback_id: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 85 | pub phase: EventPhase, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | pub once: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventHandler` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `handlers`, `node_ancestors`, and `next_callback_id` are never read [INFO] [stdout] --> src/engine/events.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct EventDispatcher { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 89 | handlers: HashMap<(usize, EventType), Vec>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 90 | node_ancestors: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 91 | next_callback_id: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/events.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl EventDispatcher { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn add_listener(&mut self, node_id: usize, event_type: EventType, use_capture: bool, once: bool) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn remove_listener(&mut self, node_id: usize, event_type: EventType, callback_id: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn dispatch(&mut self, event: &mut DomEvent) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | fn fire_handlers(&self, node_id: usize, event: &mut DomEvent, phase: EventPhase, fired: &mut Vec, once_removals: &mut Vec<... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | fn build_path(&self, target: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn set_ancestors(&mut self, node_id: usize, ancestors: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn clear_node(&mut self, node_id: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `current_focus` and `tab_order` are never read [INFO] [stdout] --> src/engine/events.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 171 | pub struct FocusManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 172 | pub current_focus: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 173 | pub tab_order: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `focus`, `blur`, `tab_next`, `tab_prev`, and `set_tab_order` are never used [INFO] [stdout] --> src/engine/events.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 175 | impl FocusManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 176 | pub fn new() -> Self { Self { current_focus: None, tab_order: Vec::new() } } [INFO] [stdout] 177 | pub fn focus(&mut self, node_id: usize, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn blur(&mut self, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn tab_next(&mut self, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn tab_prev(&mut self, dispatcher: &mut EventDispatcher) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn set_tab_order(&mut self, ids: Vec) { self.tab_order = ids; } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HitTester` is never constructed [INFO] [stdout] --> src/engine/events.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub struct HitTester; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `hit_test` is never used [INFO] [stdout] --> src/engine/events.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 224 | impl HitTester { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 225 | pub fn hit_test(x: f32, y: f32, layout_rects: &HashMap) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Center` and `Right` are never constructed [INFO] [stdout] --> src/engine/canvas.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TextAlign { Left, Center, Right } [INFO] [stdout] | --------- ^^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `TextAlign` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Top`, `Middle`, and `Bottom` are never constructed [INFO] [stdout] --> src/engine/canvas.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum TextBaseline { Top, Middle, Alphabetic, Bottom } [INFO] [stdout] | ------------ ^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | variants in this enum [INFO] [stdout] | [INFO] [stdout] = note: `TextBaseline` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/engine/canvas.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CanvasState { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 8 | pub fill_color: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | pub stroke_color: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 10 | pub line_width: f32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | pub global_alpha: f32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 12 | pub transform: [f32; 6], [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | pub clip_rect: Option<(f32, f32, f32, f32)>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | pub font_size: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 15 | pub text_align: TextAlign, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 16 | pub text_baseline: TextBaseline, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CanvasState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `MoveTo`, `LineTo`, `Arc`, `QuadraticCurveTo`, `BezierCurveTo`, and `ClosePath` are never constructed [INFO] [stdout] --> src/engine/canvas.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum PathCommand { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 35 | MoveTo(f32, f32), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 36 | LineTo(f32, f32), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 37 | Arc(f32, f32, f32, f32, f32, bool), [INFO] [stdout] | ^^^ [INFO] [stdout] 38 | QuadraticCurveTo(f32, f32, f32, f32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | BezierCurveTo(f32, f32, f32, f32, f32, f32), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 40 | ClosePath, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PathCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `commands` is never read [INFO] [stdout] --> src/engine/canvas.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct Path { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 44 | pub commands: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Path` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `flatten` are never used [INFO] [stdout] --> src/engine/canvas.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Path { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 47 | pub fn new() -> Self { Self { commands: Vec::new() } } [INFO] [stdout] | ^^^ [INFO] [stdout] 48 | pub fn flatten(&self, tolerance: f32) -> Vec<(f32, f32)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, `pixels`, `state`, `state_stack`, and `current_path` are never read [INFO] [stdout] --> src/engine/canvas.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct Canvas2D { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 113 | pub width: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 114 | pub height: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 115 | pub pixels: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 116 | state: CanvasState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 117 | state_stack: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 118 | current_path: Path, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/canvas.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl Canvas2D { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 121 | pub fn new(w: u32, h: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn save(&mut self) { self.state_stack.push(self.state.clone()); } [INFO] [stdout] | ^^^^ [INFO] [stdout] 126 | pub fn restore(&mut self) { if let Some(s) = self.state_stack.pop() { self.state = s; } } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 127 | pub fn fill_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn stroke_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn clear_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn begin_path(&mut self) { self.current_path = Path::new(); } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 156 | pub fn move_to(&mut self, x: f32, y: f32) { self.current_path.commands.push(PathCommand::MoveTo(x, y)); } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 157 | pub fn line_to(&mut self, x: f32, y: f32) { self.current_path.commands.push(PathCommand::LineTo(x, y)); } [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 158 | pub fn arc(&mut self, cx: f32, cy: f32, r: f32, start_angle: f32, end_angle: f32, ccw: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn quadratic_curve_to(&mut self, cpx: f32, cpy: f32, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn bezier_curve_to(&mut self, cp1x: f32, cp1y: f32, cp2x: f32, cp2y: f32, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn close_path(&mut self) { self.current_path.commands.push(PathCommand::ClosePath); } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 168 | pub fn fill(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn stroke(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn fill_text(&mut self, text: &str, x: f32, y: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn draw_image(&mut self, src_pixels: &[u8], src_w: u32, src_h: u32, dx: f32, dy: f32, dw: f32, dh: f32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | pub fn translate(&mut self, tx: f32, ty: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn rotate(&mut self, angle: f32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub fn scale(&mut self, sx: f32, sy: f32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn set_transform(&mut self, a: f32, b: f32, c: f32, d: f32, e: f32, f: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn set_fill_style(&mut self, color: [u8; 4]) { self.state.fill_color = color; } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 286 | pub fn set_stroke_style(&mut self, color: [u8; 4]) { self.state.stroke_color = color; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 287 | pub fn set_line_width(&mut self, w: f32) { self.state.line_width = w.max(0.0); } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 288 | pub fn set_global_alpha(&mut self, a: f32) { self.state.global_alpha = a.clamp(0.0, 1.0); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 289 | pub fn set_font_size(&mut self, size: f32) { self.state.font_size = size.max(1.0); } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 290 | pub fn set_text_align(&mut self, align: TextAlign) { self.state.text_align = align; } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 291 | pub fn set_text_baseline(&mut self, baseline: TextBaseline) { self.state.text_baseline = baseline; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 292 | pub fn set_clip_rect(&mut self, x: f32, y: f32, w: f32, h: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn get_image_data(&self, x: u32, y: u32, w: u32, h: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | pub fn put_image_data(&mut self, data: &[u8], x: u32, y: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn to_png_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | fn set_pixel(&mut self, x: i32, y: i32, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | fn set_pixel_direct(&mut self, x: i32, y: i32, color: &[u8; 4]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | fn apply_alpha(&self, mut color: [u8; 4]) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | fn transform_point(&self, x: f32, y: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | fn draw_line_internal(&mut self, x0: f32, y0: f32, x1: f32, y1: f32, color: &[u8; 4], width: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn draw_line_raw(&mut self, x0: f32, y0: f32, x1: f32, y1: f32, color: &[u8; 4], width: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SvgElement` is never used [INFO] [stdout] --> src/engine/svg.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum SvgElement { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SvgNode` is never constructed [INFO] [stdout] --> src/engine/svg.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SvgNode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `attr_f32`, and `attr_str` are never used [INFO] [stdout] --> src/engine/svg.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SvgNode { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new(element: SvgElement) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fn attr_f32(&self, name: &str, default: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [WARN] too many lines in the log, truncating it