[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] 4d9032f170f2c97e1fb906b65802bbadfaf85481 [INFO] checking Amnibro/Amni-Browse against 98fd715edd3a0a5aa8f2041d7e20a3143b0fc0d3 for pr-160235-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmnibro%2FAmni-Browse" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/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-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Amnibro/Amni-Browse on toolchain 98fd715edd3a0a5aa8f2041d7e20a3143b0fc0d3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+98fd715edd3a0a5aa8f2041d7e20a3143b0fc0d3" "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" "+98fd715edd3a0a5aa8f2041d7e20a3143b0fc0d3" "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] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wry v0.46.3 [INFO] [stderr] Downloaded webview2-com v0.33.0 [INFO] [stderr] Downloaded webkit2gtk-sys v2.0.1 [INFO] [stderr] Downloaded syn v3.0.4 [INFO] [stderr] Downloaded indexmap v2.14.1 [INFO] [stderr] Downloaded webkit2gtk v2.0.1 [INFO] [stderr] Downloaded tao-macros v0.1.4 [INFO] [stderr] Downloaded find-msvc-tools v0.1.11 [INFO] [stderr] Downloaded thin-slice v0.1.1 [INFO] [stderr] Downloaded servo_arc v0.1.1 [INFO] [stderr] Downloaded objc2-web-kit v0.2.2 [INFO] [stderr] Downloaded cc v1.4.4 [INFO] [stderr] Downloaded kuchikiki v0.8.2 [INFO] [stderr] Downloaded selectors v0.22.0 [INFO] [stderr] Downloaded phf_macros v0.8.0 [INFO] [stderr] Downloaded cssparser v0.27.2 [INFO] [stderr] Downloaded itoa v0.4.8 [INFO] [stderr] Downloaded html5ever v0.26.0 [INFO] [stderr] Downloaded markup5ever v0.11.0 [INFO] [stderr] Downloaded phf_codegen v0.10.0 [INFO] [stderr] Downloaded combine v4.6.8 [INFO] [stderr] Downloaded dlib v0.5.3 [INFO] [stderr] Downloaded ab_glyph v0.2.32 [INFO] [stderr] Downloaded gdkx11 v0.18.2 [INFO] [stderr] Downloaded gdkx11-sys v0.18.2 [INFO] [stderr] Downloaded wayland-scanner v0.31.11 [INFO] [stderr] Downloaded wayland-sys v0.31.11 [INFO] [stderr] Downloaded xcursor v0.3.11 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.77 [INFO] [stderr] Downloaded wayland-protocols-wlr v0.3.12 [INFO] [stderr] Downloaded hermit-abi v0.5.3 [INFO] [stderr] Downloaded bytemuck_derive v1.12.0 [INFO] [stderr] Downloaded cursor-icon v1.2.0 [INFO] [stderr] Downloaded tokio-macros v2.7.2 [INFO] [stderr] Downloaded malloc_size_of_derive v0.1.3 [INFO] [stderr] Downloaded wayland-protocols-plasma v0.3.12 [INFO] [stderr] Downloaded wayland-client v0.31.15 [INFO] [stderr] Downloaded wayland-cursor v0.31.14 [INFO] [stderr] Downloaded symphonia-utils-xiph v0.5.5 [INFO] [stderr] Downloaded zeitstempel v0.2.2 [INFO] [stderr] Downloaded memmap2 v0.9.11 [INFO] [stderr] Downloaded polling v3.11.0 [INFO] [stderr] Downloaded owned_ttf_parser v0.25.1 [INFO] [stderr] Downloaded libredox v0.1.23 [INFO] [stderr] Downloaded gpu-allocator v0.26.0 [INFO] [stderr] Downloaded d3d12 v22.0.0 [INFO] [stderr] Downloaded grid v0.15.0 [INFO] [stderr] Downloaded wayland-sys v0.30.1 [INFO] [stderr] Downloaded time-point v0.1.1 [INFO] [stderr] Downloaded objc-foundation v0.1.1 [INFO] [stderr] Downloaded io-surface v0.15.1 [INFO] [stderr] Downloaded leaky-cow v0.1.1 [INFO] [stderr] Downloaded cgl v0.3.2 [INFO] [stderr] Downloaded cocoa v0.25.0 [INFO] [stderr] Downloaded webrender_api v0.70.0 [INFO] [stderr] Downloaded wayland-backend v0.3.17 [INFO] [stderr] Downloaded ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Downloaded profiling-procmacros v1.0.18 [INFO] [stderr] Downloaded bit-set v0.6.0 [INFO] [stderr] Downloaded bit-vec v0.7.0 [INFO] [stderr] Downloaded gdkwayland-sys v0.18.2 [INFO] [stderr] Downloaded dlopen2_derive v0.4.3 [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 extended v0.1.0 [INFO] [stderr] Downloaded symphonia-codec-vorbis v0.5.5 [INFO] [stderr] Downloaded symphonia-codec-pcm v0.5.5 [INFO] [stderr] Downloaded symphonia-codec-aac v0.5.5 [INFO] [stderr] Downloaded symphonia-bundle-flac v0.5.5 [INFO] [stderr] Downloaded servo-display-link v0.2.0 [INFO] [stderr] Downloaded objc_id v0.1.1 [INFO] [stderr] Downloaded leak v0.1.2 [INFO] [stderr] Downloaded wr_malloc_size_of v0.2.2 [INFO] [stderr] Downloaded app_units v0.7.8 [INFO] [stderr] Downloaded peek-poke v0.3.0 [INFO] [stderr] Downloaded peek-poke-derive v0.3.0 [INFO] [stderr] Downloaded tracy-rs v0.1.2 [INFO] [stderr] Downloaded webrender_build v0.70.0 [INFO] [stderr] Downloaded smallbitvec v2.6.1 [INFO] [stderr] Downloaded redox_syscall v0.9.3 [INFO] [stderr] Downloaded dlopen2 v0.7.0 [INFO] [stderr] Downloaded toml_writer v1.1.2+spec-1.1.0 [INFO] [stderr] Downloaded freetype v0.8.0 [INFO] [stderr] Downloaded gleam v0.15.1 [INFO] [stderr] Downloaded build-parallel v0.1.2 [INFO] [stderr] Downloaded phf_shared v0.13.1 [INFO] [stderr] Downloaded wayland-protocols v0.32.13 [INFO] [stderr] Downloaded wgpu-types v22.0.0 [INFO] [stderr] Downloaded uuid v1.26.0 [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 symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Downloaded toml v1.1.5+spec-1.1.0 [INFO] [stderr] Downloaded core-text v20.1.0 [INFO] [stderr] Downloaded plane-split v0.18.0 [INFO] [stderr] Downloaded etagere v0.2.15 [INFO] [stderr] Downloaded thin-vec v0.2.19 [INFO] [stderr] Downloaded string_cache v0.9.0 [INFO] [stderr] Downloaded quick-xml v0.41.0 [INFO] [stderr] Downloaded wgpu v22.1.0 [INFO] [stderr] Downloaded symphonia-core v0.5.5 [INFO] [stderr] Downloaded euclid v0.22.14 [INFO] [stderr] Downloaded wr_glyph_rasterizer v0.70.0 [INFO] [stderr] Downloaded dwrote v0.11.5 [INFO] [stderr] Downloaded headers-core v0.3.0 [INFO] [stderr] Downloaded sea-query-derive v1.0.0 [INFO] [stderr] Downloaded realfft v3.5.0 [INFO] [stderr] Downloaded taffy v0.7.7 [INFO] [stderr] Downloaded glow v0.17.0 [INFO] [stderr] Downloaded tendril v0.5.1 [INFO] [stderr] Downloaded resvg v0.48.1 [INFO] [stderr] Downloaded sys-locale v0.3.2 [INFO] [stderr] Downloaded sea-query-rusqlite v0.8.0 [INFO] [stderr] Downloaded speexdsp-resampler v0.1.0 [INFO] [stderr] Downloaded swapper v0.1.0 [INFO] [stderr] Downloaded webpki-roots v1.0.9 [INFO] [stderr] Downloaded unicode-script v0.5.8 [INFO] [stderr] Downloaded enumn v0.1.14 [INFO] [stderr] Downloaded android-activity v0.6.1 [INFO] [stderr] Downloaded wgpu-hal v22.0.0 [INFO] [stderr] Downloaded wgpu-core v22.1.0 [INFO] [stderr] Downloaded surfman v0.9.8 [INFO] [stderr] Downloaded surfman v0.13.0 [INFO] [stderr] Downloaded objc2-metal v0.3.2 [INFO] [stderr] Downloaded xml5ever v0.39.0 [INFO] [stderr] Downloaded mozjs_properties_glue v153.0.0 [INFO] [stderr] Downloaded rusqlite v0.38.0 [INFO] [stderr] Downloaded icu_time v2.1.1 [INFO] [stderr] Downloaded data-url v0.3.2 [INFO] [stderr] Downloaded sea-query v1.0.2 [INFO] [stderr] Downloaded ixdtf v0.6.6 [INFO] [stderr] Downloaded winit v0.30.13 [INFO] [stderr] Downloaded unicode-vo v0.1.0 [INFO] [stderr] Downloaded mozjs_icu_collections v153.0.0 [INFO] [stderr] Downloaded icu_casemap v2.1.1 [INFO] [stderr] Downloaded icu_list v2.1.1 [INFO] [stderr] Downloaded naga v22.1.0 [INFO] [stderr] Downloaded icu_provider_adapters v2.1.1 [INFO] [stderr] Downloaded icu_plurals_data v2.1.1 [INFO] [stderr] Downloaded diplomat-runtime v0.14.0 [INFO] [stderr] Downloaded strck v1.0.0 [INFO] [stderr] Downloaded wuff v0.2.9 [INFO] [stderr] Downloaded cssparser-macros v0.7.0 [INFO] [stderr] Downloaded xmlwriter v0.1.0 [INFO] [stderr] Downloaded mozjs_unicode_bidi_ffi v153.0.0 [INFO] [stderr] Downloaded icu_calendar v2.1.1 [INFO] [stderr] Downloaded icu_calendar_data v2.1.1 [INFO] [stderr] Downloaded icu_plurals v2.1.1 [INFO] [stderr] Downloaded icu_list_data v2.1.1 [INFO] [stderr] Downloaded icu_experimental v0.4.0 [INFO] [stderr] Downloaded icu_pattern v0.4.2 [INFO] [stderr] Downloaded icu_decimal_data v2.1.1 [INFO] [stderr] Downloaded encoding_c_mem v0.2.6 [INFO] [stderr] Downloaded yeslogic-fontconfig-sys v6.0.1 [INFO] [stderr] Downloaded ohos-deviceinfo-sys v0.1.7 [INFO] [stderr] Downloaded wuff-capi v0.2.0 [INFO] [stderr] Downloaded alloc-stdlib v0.2.4 [INFO] [stderr] Downloaded nom-rfc8288 v0.4.0 [INFO] [stderr] Downloaded nom-language v0.1.0 [INFO] [stderr] Downloaded phf_generator v0.13.1 [INFO] [stderr] Downloaded mozjs_normalizer_glue v153.0.0 [INFO] [stderr] Downloaded icu_time_data v2.1.1 [INFO] [stderr] Downloaded icu_decimal v2.1.1 [INFO] [stderr] Downloaded diplomat v0.14.0 [INFO] [stderr] Downloaded encoding_c v0.9.8 [INFO] [stderr] Downloaded clang-sys v1.9.1 [INFO] [stderr] Downloaded async-tungstenite v0.35.0 [INFO] [stderr] Downloaded linebender_resource_handle v0.1.1 [INFO] [stderr] Downloaded reborrow v0.5.5 [INFO] [stderr] Downloaded calendrical_calculations v0.2.4 [INFO] [stderr] Downloaded fixed_decimal v0.7.2 [INFO] [stderr] Downloaded xml v1.4.0 [INFO] [stderr] Downloaded buf-read-ext v0.4.0 [INFO] [stderr] Downloaded imsz v0.4.1 [INFO] [stderr] Downloaded compression-codecs v0.4.39 [INFO] [stderr] Downloaded ohos-window-sys v0.1.7 [INFO] [stderr] Downloaded gstreamer-play v0.25.0 [INFO] [stderr] Downloaded gaol v0.2.1 [INFO] [stderr] Downloaded ohos-pasteboard v0.1.0 [INFO] [stderr] Downloaded udmf v0.1.1 [INFO] [stderr] Downloaded udmf-sys v0.1.4 [INFO] [stderr] Downloaded read-fonts v0.43.3 [INFO] [stderr] Downloaded fax v0.2.7 [INFO] [stderr] Downloaded gstreamer-sdp-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-play-sys v0.25.0 [INFO] [stderr] Downloaded gstreamer-app-sys v0.25.0 [INFO] [stderr] Downloaded uds_windows v1.2.1 [INFO] [stderr] Downloaded serde_repr v0.1.21 [INFO] [stderr] Downloaded wayland-protocols-misc v0.3.12 [INFO] [stderr] Downloaded emath v0.29.1 [INFO] [stderr] Downloaded webrender v0.70.0 [INFO] [stderr] Downloaded phf_codegen v0.13.1 [INFO] [stderr] Downloaded uluru v3.1.0 [INFO] [stderr] Downloaded atomic_refcell v0.1.14 [INFO] [stderr] Downloaded ordered-channel v1.2.0 [INFO] [stderr] Downloaded zune-core v0.5.3 [INFO] [stderr] Downloaded pico-args v0.5.0 [INFO] [stderr] Downloaded imagesize v0.15.0 [INFO] [stderr] Downloaded fontconfig-parser v0.5.8 [INFO] [stderr] Downloaded avif-serialize v0.8.9 [INFO] [stderr] Downloaded pulp-wasm-simd-flag v0.1.1 [INFO] [stderr] Downloaded transpose v0.2.3 [INFO] [stderr] Downloaded primal-check v0.3.4 [INFO] [stderr] Downloaded sponge-cursor v0.1.0 [INFO] [stderr] Downloaded icu_datetime v2.1.1 [INFO] [stderr] Downloaded diplomat_core v0.14.0 [INFO] [stderr] Downloaded chardetng v1.0.0 [INFO] [stderr] Downloaded hybrid-array v0.4.14 [INFO] [stderr] Downloaded tokio-stream v0.1.19 [INFO] [stderr] Downloaded futures v0.3.34 [INFO] [stderr] Downloaded ohos-sys-opaque-types v0.1.11 [INFO] [stderr] Downloaded gstreamer-sdp v0.25.3 [INFO] [stderr] Downloaded gstreamer-audio v0.25.3 [INFO] [stderr] Downloaded gstreamer-audio-sys v0.25.3 [INFO] [stderr] Downloaded gstreamer-app v0.25.2 [INFO] [stderr] Downloaded unicode_categories v0.1.1 [INFO] [stderr] Downloaded ordered-stream v0.2.0 [INFO] [stderr] Downloaded futures-lite v2.6.1 [INFO] [stderr] Downloaded topological-sort v0.1.0 [INFO] [stderr] Downloaded svg_fmt v0.4.5 [INFO] [stderr] Downloaded phf v0.13.1 [INFO] [stderr] Downloaded string_cache_codegen v0.6.1 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded peniko v0.6.1 [INFO] [stderr] Downloaded markup5ever v0.39.0 [INFO] [stderr] Downloaded icu_casemap_data v2.1.1 [INFO] [stderr] Downloaded mozjs_utf8_iter v153.0.0 [INFO] [stderr] Downloaded mozjs_locale_glue v153.0.0 [INFO] [stderr] Downloaded mozjs_collator_glue v153.0.0 [INFO] [stderr] Downloaded brotli-decompressor v5.0.3 [INFO] [stderr] Downloaded tungstenite v0.30.0 [INFO] [stderr] Downloaded quick_cache v0.7.0 [INFO] [stderr] Downloaded async-compression v0.4.44 [INFO] [stderr] Downloaded ohos-media-sys v0.1.1 [INFO] [stderr] Downloaded option-operations v0.6.1 [INFO] [stderr] Downloaded muldiv v1.0.1 [INFO] [stderr] Downloaded kstring v2.0.2 [INFO] [stderr] Downloaded ohos-pasteboard-sys v0.1.5 [INFO] [stderr] Downloaded coreaudio-sys v0.2.18 [INFO] [stderr] Downloaded phf_macros v0.13.1 [INFO] [stderr] Downloaded zerovec-derive v0.10.4 [INFO] [stderr] Downloaded polycool v0.4.0 [INFO] [stderr] Downloaded accesskit v0.24.1 [INFO] [stderr] Downloaded mozjs_utf16_iter v153.0.0 [INFO] [stderr] Downloaded fontsan v0.7.0 [INFO] [stderr] Downloaded pastey v0.2.3 [INFO] [stderr] Downloaded system-deps v7.0.8 [INFO] [stderr] Downloaded cfg-expr v0.20.9 [INFO] [stderr] Downloaded gstreamer-webrtc-sys v0.25.0 [INFO] [stderr] Downloaded servo_arc v0.4.3 [INFO] [stderr] Downloaded web_atoms v0.2.6 [INFO] [stderr] Downloaded skrifa v0.46.2 [INFO] [stderr] Downloaded yuv v0.8.17 [INFO] [stderr] Downloaded gstreamer-sys v0.25.2 [INFO] [stderr] Downloaded selectors v0.26.0 [INFO] [stderr] Downloaded enumflags2 v0.7.12 [INFO] [stderr] Downloaded egui v0.29.1 [INFO] [stderr] Downloaded tree_magic_mini v3.2.2 [INFO] [stderr] Downloaded zvariant_derive v5.15.0 [INFO] [stderr] Downloaded zcheapstr v1.1.0 [INFO] [stderr] Downloaded enumflags2_derive v0.7.12 [INFO] [stderr] Downloaded embed-resource v3.0.11 [INFO] [stderr] Downloaded egui-winit v0.29.1 [INFO] [stderr] Downloaded smithay-clipboard v0.7.3 [INFO] [stderr] Downloaded wayland-protocols-experimental v20250721.0.1 [INFO] [stderr] Downloaded sptr v0.3.2 [INFO] [stderr] Downloaded glslopt v0.1.14 [INFO] [stderr] Downloaded webdriver v0.53.0 [INFO] [stderr] Downloaded crc32fast v1.5.1 [INFO] [stderr] Downloaded guillotiere v0.7.0 [INFO] [stderr] Downloaded font-types v0.12.4 [INFO] [stderr] Downloaded tiny-skia-path v0.12.0 [INFO] [stderr] Downloaded svgtypes v0.16.1 [INFO] [stderr] Downloaded simplecss v0.2.2 [INFO] [stderr] Downloaded no_std_io2 v0.9.4 [INFO] [stderr] Downloaded imgref v1.12.3 [INFO] [stderr] Downloaded strength_reduce v0.2.4 [INFO] [stderr] Downloaded arraystring v0.3.0 [INFO] [stderr] Downloaded icu_collator_data v2.1.1 [INFO] [stderr] Downloaded keccak v0.2.2 [INFO] [stderr] Downloaded target-lexicon v0.13.5 [INFO] [stderr] Downloaded gobject-sys v0.22.9 [INFO] [stderr] Downloaded gstreamer-gl-egl v0.25.0 [INFO] [stderr] Downloaded gstreamer-gl-egl-sys v0.25.0 [INFO] [stderr] Downloaded env_logger v0.11.11 [INFO] [stderr] Downloaded env_filter v2.0.0 [INFO] [stderr] Downloaded os_pipe v1.2.3 [INFO] [stderr] Downloaded endi v1.1.1 [INFO] [stderr] Downloaded blocking v1.7.0 [INFO] [stderr] Downloaded piper v0.2.5 [INFO] [stderr] Downloaded webbrowser v1.2.4 [INFO] [stderr] Downloaded calloop-wayland-source v0.4.1 [INFO] [stderr] Downloaded nohash-hasher v0.2.0 [INFO] [stderr] Downloaded ecolor v0.29.1 [INFO] [stderr] Downloaded windows-result v0.1.2 [INFO] [stderr] Downloaded time-macros v0.2.32 [INFO] [stderr] Downloaded mach2 v0.6.0 [INFO] [stderr] Downloaded built v0.8.1 [INFO] [stderr] Downloaded icu_locale v2.1.1 [INFO] [stderr] Downloaded system-deps v9.0.0 [INFO] [stderr] Downloaded glib-macros v0.22.9 [INFO] [stderr] Downloaded gstreamer-video-sys v0.25.3 [INFO] [stderr] Downloaded gstreamer-base-sys v0.25.3 [INFO] [stderr] Downloaded gstreamer-base v0.25.3 [INFO] [stderr] Downloaded gstreamer-gl-sys v0.25.0 [INFO] [stderr] Downloaded arboard v3.6.1 [INFO] [stderr] Downloaded wl-clipboard-rs v0.9.3 [INFO] [stderr] Downloaded error-code v3.4.0 [INFO] [stderr] Downloaded egui-wgpu v0.29.1 [INFO] [stderr] Downloaded orbclient v0.3.55 [INFO] [stderr] Downloaded cssparser v0.37.0 [INFO] [stderr] Downloaded glifo v0.3.0 [INFO] [stderr] Downloaded roxmltree v0.21.1 [INFO] [stderr] Downloaded gif v0.14.2 [INFO] [stderr] Downloaded content-security-policy v0.8.2 [INFO] [stderr] Downloaded bitstream-io v4.10.0 [INFO] [stderr] Downloaded glib-sys v0.22.9 [INFO] [stderr] Downloaded gio-sys v0.22.9 [INFO] [stderr] Downloaded clipboard-win v5.4.1 [INFO] [stderr] Downloaded cssparser v0.34.0 [INFO] [stderr] Downloaded smithay-client-toolkit v0.20.0 [INFO] [stderr] Downloaded calloop v0.14.4 [INFO] [stderr] Downloaded alsa v0.9.1 [INFO] [stderr] Downloaded cookie v0.18.2 [INFO] [stderr] Downloaded gstreamer v0.25.3 [INFO] [stderr] Downloaded zvariant_utils v4.2.0 [INFO] [stderr] Downloaded zbus_names v4.3.4 [INFO] [stderr] Downloaded zbus_macros v5.19.0 [INFO] [stderr] Downloaded async-trait v0.1.92 [INFO] [stderr] Downloaded async-process v2.5.0 [INFO] [stderr] Downloaded epaint v0.29.1 [INFO] [stderr] Downloaded pollster v0.3.0 [INFO] [stderr] Downloaded gstreamer-video v0.25.3 [INFO] [stderr] Downloaded fontdue v0.9.4 [INFO] [stderr] Downloaded color v0.3.3 [INFO] [stderr] Downloaded portable-atomic v1.15.0 [INFO] [stderr] Downloaded headers v0.4.1 [INFO] [stderr] Downloaded mozjs_icu_normalizer v153.0.0 [INFO] [stderr] Downloaded intrusive-collections v0.9.7 [INFO] [stderr] Downloaded fast-float v0.2.0 [INFO] [stderr] Downloaded ryu-js v1.0.3 [INFO] [stderr] Downloaded html5ever v0.39.0 [INFO] [stderr] Downloaded mozjs v0.25.0 [INFO] [stderr] Downloaded mozjs_icu_normalizer_data v153.0.0 [INFO] [stderr] Downloaded glib v0.22.9 [INFO] [stderr] Downloaded gstreamer-webrtc v0.25.2 [INFO] [stderr] Downloaded async-signal v0.2.14 [INFO] [stderr] Downloaded brotli v8.0.4 [INFO] [stderr] Downloaded boa_macros v0.19.1 [INFO] [stderr] Downloaded boa_interner v0.19.1 [INFO] [stderr] Downloaded gstreamer-gl v0.25.2 [INFO] [stderr] Downloaded zvariant v5.15.0 [INFO] [stderr] Downloaded async-io v2.6.0 [INFO] [stderr] Downloaded markup5ever v0.38.0 [INFO] [stderr] Downloaded async-executor v1.14.0 [INFO] [stderr] Downloaded async-broadcast v0.7.2 [INFO] [stderr] Downloaded boa_string v0.19.1 [INFO] [stderr] Downloaded boa_profiler v0.19.1 [INFO] [stderr] Downloaded keyboard-types v0.8.3 [INFO] [stderr] Downloaded rfd v0.15.4 [INFO] [stderr] Downloaded ashpd v0.11.1 [INFO] [stderr] Downloaded async-net v2.0.0 [INFO] [stderr] Downloaded async-fs v2.2.0 [INFO] [stderr] Downloaded markup5ever_rcdom v0.38.0+unofficial [INFO] [stderr] Downloaded boa_gc v0.19.1 [INFO] [stderr] Downloaded xml5ever v0.38.0 [INFO] [stderr] Downloaded vello_common v0.2.0 [INFO] [stderr] Downloaded fontdb v0.24.0 [INFO] [stderr] Downloaded html5ever v0.38.0 [INFO] [stderr] Downloaded raw-cpuid v11.6.0 [INFO] [stderr] Downloaded icu_locale_data v2.1.2 [INFO] [stderr] Downloaded vello_cpu v0.2.0 [INFO] [stderr] Downloaded zbus v5.19.0 [INFO] [stderr] Downloaded usvg v0.48.1 [INFO] [stderr] Downloaded pulp v0.22.3 [INFO] [stderr] Downloaded boa_ast v0.19.1 [INFO] [stderr] Downloaded ipc-channel v0.23.0 [INFO] [stderr] Downloaded libfuzzer-sys v0.4.13 [INFO] [stderr] Downloaded kurbo v0.13.1 [INFO] [stderr] Downloaded taffy v0.14.0 [INFO] [stderr] Downloaded boa_engine v0.19.1 [INFO] [stderr] Downloaded boa_parser v0.19.1 [INFO] [stderr] Downloaded epaint_default_fonts v0.29.1 [INFO] [stderr] Downloaded icu_collator v2.1.2 [INFO] [stderr] Downloaded zlib-rs v0.6.7 [INFO] [stderr] Downloaded fearless_simd v0.4.1 [INFO] [stderr] Downloaded tao v0.30.8 [INFO] [stderr] Downloaded tiny-skia v0.12.0 [INFO] [stderr] Downloaded cbindgen v0.29.4 [INFO] [stderr] Downloaded icu_segmenter v2.1.2 [INFO] [stderr] Downloaded time v0.3.55 [INFO] [stderr] Downloaded skrifa v0.44.0 [INFO] [stderr] Downloaded harfrust v0.12.0 [INFO] [stderr] Downloaded exr v1.74.2 [INFO] [stderr] Downloaded rustfft v6.4.1 [INFO] [stderr] Downloaded icu_datetime_data v2.1.2 [INFO] [stderr] Downloaded harfbuzz-sys v0.8.0 [INFO] [stderr] Downloaded regress v0.10.5 [INFO] [stderr] Downloaded icu_capi v2.1.2 [INFO] [stderr] Downloaded mozjs_icu_collator_data v153.0.0 [INFO] [stderr] Downloaded read-fonts v0.41.0 [INFO] [stderr] Downloaded icu_segmenter_data v2.1.1 [INFO] [stderr] Downloaded pxfm v0.1.30 [INFO] [stderr] Downloaded webview2-com-sys v0.33.0 [INFO] [stderr] Downloaded freetype-sys v0.23.0 [INFO] [stderr] Downloaded mozjs_icu_collator v153.0.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.36.0 [INFO] [stderr] Downloaded icu_experimental_data v0.4.1 [INFO] [stderr] Downloaded mozangle v0.7.0 [INFO] [stderr] Downloaded mozjs_sys v153.0.0-0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 317fb5411d63e72b6c49f05b49279b545581bdb6272b6573d8a04443807053f4 [INFO] running `Command { std: "docker" "start" "317fb5411d63e72b6c49f05b49279b545581bdb6272b6573d8a04443807053f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "317fb5411d63e72b6c49f05b49279b545581bdb6272b6573d8a04443807053f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "317fb5411d63e72b6c49f05b49279b545581bdb6272b6573d8a04443807053f4" "/opt/rustwide/cargo-home/bin/cargo" "+98fd715edd3a0a5aa8f2041d7e20a3143b0fc0d3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "317fb5411d63e72b6c49f05b49279b545581bdb6272b6573d8a04443807053f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "317fb5411d63e72b6c49f05b49279b545581bdb6272b6573d8a04443807053f4" "/opt/rustwide/cargo-home/bin/cargo" "+98fd715edd3a0a5aa8f2041d7e20a3143b0fc0d3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling pkg-config v0.3.34 [INFO] [stderr] Compiling proc-macro2 v1.0.107 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.47 [INFO] [stderr] Compiling serde_core v1.0.229 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling hashbrown v0.17.1 [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.16.0 [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] Compiling cfg-expr v0.15.8 [INFO] [stderr] Compiling indexmap v2.14.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.11 [INFO] [stderr] Compiling syn v3.0.4 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Checking futures-core v0.3.34 [INFO] [stderr] Checking memchr v2.8.3 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Checking futures-sink v0.3.34 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Checking bitflags v2.13.1 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking futures-io v0.3.34 [INFO] [stderr] Compiling jobserver v0.1.35 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking futures-task v0.3.34 [INFO] [stderr] Compiling cc v1.4.4 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Compiling siphasher v1.0.3 [INFO] [stderr] Checking futures-channel v0.3.34 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking bytes v1.12.1 [INFO] [stderr] Checking typenum v1.20.1 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking log v0.4.34 [INFO] [stderr] Checking itoa v1.0.18 [INFO] [stderr] Compiling autocfg v1.5.1 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking mio v1.2.3 [INFO] [stderr] Checking socket2 v0.6.5 [INFO] [stderr] Compiling toml_datetime v0.6.3 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling toml_edit v0.20.2 [INFO] [stderr] Compiling gio v0.18.4 [INFO] [stderr] Compiling semver v1.0.28 [INFO] [stderr] Checking http v1.5.0 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking zeroize v1.9.0 [INFO] [stderr] Compiling fastrand v2.5.0 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Checking litemap v0.8.3 [INFO] [stderr] Checking writeable v0.6.4 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Compiling openssl-sys v0.9.117 [INFO] [stderr] Compiling aws-lc-sys v0.45.0 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Checking rustls-pki-types v1.15.1 [INFO] [stderr] Compiling rand v0.8.8 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling futures-macro v0.3.34 [INFO] [stderr] Compiling zerovec-derive v0.11.6 [INFO] [stderr] Compiling displaydoc v0.2.7 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling tokio-macros v2.7.2 [INFO] [stderr] Checking futures-util v0.3.34 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling toml v0.8.2 [INFO] [stderr] Compiling proc-macro-crate v2.0.2 [INFO] [stderr] Checking tokio v1.53.1 [INFO] [stderr] Compiling system-deps v6.2.2 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [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] Checking zerofrom v0.1.8 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Compiling cairo-sys-rs v0.18.2 [INFO] [stderr] Compiling atk-sys v0.18.2 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.18.0 [INFO] [stderr] Compiling pango-sys v0.18.0 [INFO] [stderr] Compiling glib-macros v0.18.5 [INFO] [stderr] Checking zerovec v0.11.8 [INFO] [stderr] Checking futures-executor v0.3.34 [INFO] [stderr] Compiling gtk-sys v0.18.2 [INFO] [stderr] Checking zerotrie v0.2.5 [INFO] [stderr] Checking tinystr v0.8.4 [INFO] [stderr] Checking icu_locale_core v2.3.0 [INFO] [stderr] Checking potential_utf v0.1.6 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Checking http-body v1.1.0 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling aws-lc-rs v1.18.1 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling web_atoms v0.2.6 [INFO] [stderr] Checking icu_provider v2.3.1 [INFO] [stderr] Compiling javascriptcore-rs-sys v1.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Compiling soup3-sys v0.5.0 [INFO] [stderr] Compiling webkit2gtk-sys v2.0.1 [INFO] [stderr] Compiling field-offset v0.3.6 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling x11 v2.21.0 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking simd-adler32 v0.3.10 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling openssl v0.10.81 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Checking openssl-probe v0.2.1 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking tokio-util v0.7.19 [INFO] [stderr] Checking string_cache v0.9.0 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Checking glib v0.18.5 [INFO] [stderr] Compiling gdkx11-sys v0.18.2 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking h2 v0.4.19 [INFO] [stderr] Compiling gtk v0.18.2 [INFO] [stderr] Compiling zerocopy v0.8.56 [INFO] [stderr] Compiling winnow v1.0.4 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking adler2 v2.0.1 [INFO] [stderr] Compiling crc32fast v1.5.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Compiling toml_parser v1.1.3+spec-1.1.0 [INFO] [stderr] Compiling gtk3-macros v0.18.2 [INFO] [stderr] Checking tendril v0.5.1 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Checking aho-corasick v1.1.5 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Checking regex-syntax v0.8.11 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking ipnet v2.12.1 [INFO] [stderr] Checking hyper v1.11.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.22 [INFO] [stderr] Compiling toml_writer v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling zmij v1.0.23 [INFO] [stderr] Compiling rustls v0.23.43 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Compiling toml v1.1.5+spec-1.1.0 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking markup5ever v0.38.0 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking regex-automata v0.4.18 [INFO] [stderr] Checking miniz_oxide v0.9.1 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Compiling libsqlite3-sys v0.36.0 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Compiling slotmap v1.1.1 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Checking dtoa v1.0.11 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Checking foldhash v0.2.0 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking anstyle-parse v1.0.0 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Compiling embed-resource v3.0.11 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Checking flate2 v1.1.10 [INFO] [stderr] Checking regex v1.13.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking http-body-util v0.1.5 [INFO] [stderr] Compiling dlopen2_derive v0.4.3 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Checking webpki-roots v1.0.9 [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 colorchoice v1.0.5 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking zune-core v0.5.3 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking base64ct v1.8.3 [INFO] [stderr] Compiling wry v0.46.3 [INFO] [stderr] Checking jiff-core v0.1.0 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking is_terminal_polyfill v1.70.2 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Checking weezl v0.1.12 [INFO] [stderr] Checking pxfm v0.1.30 [INFO] [stderr] Checking anstyle v1.0.14 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking anstyle-query v1.1.5 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking gif v0.14.2 [INFO] [stderr] Checking anstream v1.0.0 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking jiff v0.2.35 [INFO] [stderr] Checking image-webp v0.2.4 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking zune-jpeg v0.5.15 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking dlopen2 v0.7.0 [INFO] [stderr] Checking cssparser v0.34.0 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking crossbeam-channel v0.5.16 [INFO] [stderr] Checking env_filter v2.0.0 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Compiling amni-browse v0.13.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 tower-http v0.6.11 [INFO] [stderr] Checking hashlink v0.11.1 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Checking xml5ever v0.38.0 [INFO] [stderr] Checking html5ever v0.38.0 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking rustls-native-certs v0.8.4 [INFO] [stderr] Checking gdkwayland-sys v0.18.2 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking servo_arc v0.4.3 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking iana-time-zone v0.1.65 [INFO] [stderr] Checking arrayvec v0.7.8 [INFO] [stderr] Checking bytemuck v1.25.2 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking grid v0.15.0 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking taffy v0.7.7 [INFO] [stderr] Checking markup5ever_rcdom v0.38.0+unofficial [INFO] [stderr] Checking chrono v0.4.45 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking uuid v1.26.0 [INFO] [stderr] Checking env_logger v0.11.11 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking rusqlite v0.38.0 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Checking gdk-pixbuf v0.18.5 [INFO] [stderr] Checking pango v0.18.3 [INFO] [stderr] Checking soup3 v0.5.0 [INFO] [stderr] Checking gdk v0.18.2 [INFO] [stderr] Checking rustls-webpki v0.103.15 [INFO] [stderr] Checking gdkx11 v0.18.2 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking hyper-rustls v0.27.9 [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: `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: `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: `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: `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: `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: function `browser_html` is never used [INFO] [stdout] --> src/ui/webview.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn browser_html(theme: &Theme) -> 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: method `is_dark` is never used [INFO] [stdout] --> src/ui/theme.rs:318:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Theme { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn is_dark(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `active_is_dark`, `add_custom_theme`, `remove_custom_theme`, `theme_to_css_vars`, and `all_themes_json` are never used [INFO] [stdout] --> src/ui/theme.rs:400:12 [INFO] [stdout] | [INFO] [stdout] 361 | impl ThemeConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn active_is_dark(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn add_custom_theme(&mut self, theme: Theme) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn remove_custom_theme(&mut self, theme_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 424 | pub fn theme_to_css_vars(theme: &Theme) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn all_themes_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `css` is never used [INFO] [stdout] --> src/ui/reader.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ReaderTheme { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 21 | pub fn css(&self) -> (&str, &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `active` and `settings` are never read [INFO] [stdout] --> src/ui/reader.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ReaderMode { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 30 | pub active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 31 | pub settings: ReaderSettings, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `toggle`, `extraction_js`, `render_html`, and `settings_json` are never used [INFO] [stdout] --> src/ui/reader.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl ReaderMode { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 34 | pub fn new() -> Self { Self { active: false, settings: ReaderSettings::default() } } [INFO] [stdout] 35 | pub fn toggle(&mut self) -> bool { self.active = !self.active; self.active } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 36 | pub fn extraction_js() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn render_html(&self, title: &str, content: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn settings_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `ATLAS` is never used [INFO] [stdout] --> src/ui/emoji.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | static ATLAS: LazyLock> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^ [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 `e` is never used [INFO] [stdout] --> src/ui/emoji.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn e(name: &str) -> &str { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eh` is never used [INFO] [stdout] --> src/ui/emoji.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn eh(name: &str) -> String { [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: constant `TAB_STRIP_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const TAB_STRIP_H: u32 = 40; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAV_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const NAV_H: u32 = 44; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BOOKMARKS_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const BOOKMARKS_H: u32 = 28; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOTAL_CHROME_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const TOTAL_CHROME_H: u32 = TAB_STRIP_H + NAV_H + BOOKMARKS_H; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CONTENT_PUSH_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const CONTENT_PUSH_H: u32 = TOTAL_CHROME_H + 4; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAB_PAD` is never used [INFO] [stdout] --> src/ui/tokens.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const TAB_PAD: &str = "6px 12px"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CLOSE_HITBOX` is never used [INFO] [stdout] --> src/ui/tokens.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const CLOSE_HITBOX: u32 = 28; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAV_HIT` is never used [INFO] [stdout] --> src/ui/tokens.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const NAV_HIT: u32 = 36; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `developer_html` is never used [INFO] [stdout] --> src/ui/developer.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn developer_html(theme: &Theme) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `IpcMessage` is never used [INFO] [stdout] --> src/net/ipc.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum IpcMessage { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `IpcResponse` is never used [INFO] [stdout] --> src/net/ipc.rs:220:10 [INFO] [stdout] | [INFO] [stdout] 220 | pub enum IpcResponse { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_js_call` is never used [INFO] [stdout] --> src/net/ipc.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 308 | impl IpcResponse { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 309 | pub fn to_js_call(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ipc_message` is never used [INFO] [stdout] --> src/net/ipc.rs:314:8 [INFO] [stdout] | [INFO] [stdout] 314 | pub fn parse_ipc_message(raw: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [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: fields `enabled`, `provider`, `cache`, and `last_clean` are never read [INFO] [stdout] --> src/net/dns.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 58 | pub struct DohResolver { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 59 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 60 | pub provider: DohProvider, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | cache: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 62 | last_clean: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods 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] 121 | pub fn cache_size(&self) -> usize { self.cache.len() } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 122 | pub fn clear_cache(&mut self) { self.cache.clear(); } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 123 | pub fn set_provider(&mut self, provider: DohProvider) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn provider_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `body`, `headers`, `status`, `inserted`, and `ttl` are never read [INFO] [stdout] --> src/net/http.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | struct CacheEntry { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 17 | body: Bytes, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | headers: Vec<(String, String)>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 19 | status: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | inserted: Instant, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 21 | ttl: Duration, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client`, `cache`, `dnt`, `block_3pc`, `user_agent`, and `default_auth` are never read [INFO] [stdout] --> src/net/http.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct AmniClient { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 24 | client: Client, Full>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | cache: Arc>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 26 | dnt: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | block_3pc: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 28 | user_agent: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 29 | default_auth: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AmniResponse` is never constructed [INFO] [stdout] --> src/net/http.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct AmniResponse { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/net/http.rs:62:18 [INFO] [stdout] | [INFO] [stdout] 38 | impl AmniClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub async fn get(&self, url: &str) -> Result> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn post(&self, url: &str, content_type: &str, body: Bytes) -> Result Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn extract_cache_ttl(&self, headers: &[(String, String)]) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn clear_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn cache_size(&self) -> 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] 134 | [INFO] [stdout] 135 | pub async fn get_with_headers(&self, url: &str, extra_headers: &[(&str, &str)]) -> Result 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: multiple methods are never used [INFO] [stdout] --> src/net/http.rs:356:12 [INFO] [stdout] | [INFO] [stdout] 355 | impl AmniResponse { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 356 | pub fn text(&self) -> Result { [INFO] [stdout] | ^^^^ [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] 390 | pub fn is_redirect(&self) -> bool { self.status >= 300 && self.status < 400 } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 391 | pub fn redirect_url(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cookies`, `block_third_party`, `allow_list`, and `deny_list` are never read [INFO] [stdout] --> src/net/cookies.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct CookieJar { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 19 | cookies: HashMap>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | block_third_party: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | allow_list: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | deny_list: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/cookies.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl CookieJar { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn set_cookie(&mut self, cookie: Cookie, request_domain: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn get_cookies(&self, domain: &str, path: &str, is_secure: bool) -> Vec<&Cookie> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn cookie_header(&self, domain: &str, path: &str, is_secure: bool) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn remove_cookie(&mut self, domain: &str, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [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] 65 | pub fn parse_set_cookie(header: &str, request_domain: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn is_same_site(&self, cookie_domain: &str, request_domain: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn domain_matches(&self, cookie_domain: &str, request_domain: &str) -> bool { [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: multiple variants are never constructed [INFO] [stdout] --> src/net/csp.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum CspDirective { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 4 | DefaultSrc, ScriptSrc, StyleSrc, ImgSrc, FontSrc, ConnectSrc, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] 5 | MediaSrc, FrameSrc, ObjectSrc, BaseUri, FormAction, FrameAncestors, ReportUri, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspDirective` 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 functions `from_str` and `resource_type_to_directive` are never used [INFO] [stdout] --> src/net/csp.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl CspDirective { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 8 | pub fn from_str(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn resource_type_to_directive(resource_type: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/net/csp.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 41 | pub enum CspSource { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 42 | Self_, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 43 | None_, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 44 | UnsafeInline, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 45 | UnsafeEval, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 46 | Https, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | Data, [INFO] [stdout] | ^^^^ [INFO] [stdout] 48 | Blob, [INFO] [stdout] | ^^^^ [INFO] [stdout] 49 | Host(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] 50 | Nonce(String), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | Hash(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspSource` 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 `parse` and `matches` are never used [INFO] [stdout] --> src/net/csp.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl CspSource { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 54 | pub fn parse(s: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn matches(&self, url: &str, page_origin: &str, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `url_matches_origin` is never used [INFO] [stdout] --> src/net/csp.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn url_matches_origin(url: &str, origin: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_origin` is never used [INFO] [stdout] --> src/net/csp.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn extract_origin(url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `host_matches` is never used [INFO] [stdout] --> src/net/csp.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn host_matches(url: &str, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `directives` and `page_origin` are never read [INFO] [stdout] --> src/net/csp.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 111 | pub struct CspPolicy { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 112 | pub directives: HashMap>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 113 | pub page_origin: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspPolicy` 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`, `allows`, `allows_inline_script`, `allows_inline_style`, and `allows_eval` are never used [INFO] [stdout] --> src/net/csp.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl CspPolicy { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn new(page_origin: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn allows(&self, directive: &CspDirective, url: &str, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^ [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: function `parse_policy` is never used [INFO] [stdout] --> src/net/csp.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn parse_policy(header: &str, page_origin: &str) -> CspPolicy { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CspResult` is never constructed [INFO] [stdout] --> src/net/csp.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 181 | pub struct CspResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CspViolation` is never constructed [INFO] [stdout] --> src/net/csp.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct CspViolation { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enforce_policy`, `report_only_policy`, and `document_uri` are never read [INFO] [stdout] --> src/net/csp.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 191 | pub struct CspEnforcer { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 192 | pub enforce_policy: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 193 | pub report_only_policy: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 194 | pub document_uri: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/csp.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl CspEnforcer { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 197 | pub fn new(document_uri: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn set_enforce(&mut self, header: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn set_report_only(&mut self, header: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn from_headers(document_uri: &str, headers: &[(String, String)]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn check_resource(&self, resource_type: &str, url: &str) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [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 `GH_API` is never used [INFO] [stdout] --> src/net/updater.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const GH_API: &str = "https://api.github.com/repos/Amnibro/Amni-Browse/releases/latest"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SITE_FEED` is never used [INFO] [stdout] --> src/net/updater.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const SITE_FEED: &str = "https://amni-scient.com/browse/latest.json"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GH_REPO` is never used [INFO] [stdout] --> src/net/updater.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const GH_REPO: &str = "Amnibro/Amni-Browse"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReleaseInfo` is never constructed [INFO] [stdout] --> src/net/updater.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ReleaseInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `install_dir` is never used [INFO] [stdout] --> src/net/updater.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn install_dir() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_installed_copy` is never used [INFO] [stdout] --> src/net/updater.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn is_installed_copy() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_version` is never used [INFO] [stdout] --> src/net/updater.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn parse_version(s: &str) -> Option<(u32, u32, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_newer` is never used [INFO] [stdout] --> src/net/updater.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn is_newer(remote: &str, local: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ua` is never used [INFO] [stdout] --> src/net/updater.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn ua() -> String { format!("AmniBrowse/{} (+https://amni-scient.com)", env!("CARGO_PKG_VERSION")) } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `http_get` is never used [INFO] [stdout] --> src/net/updater.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn http_get(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_site` is never used [INFO] [stdout] --> src/net/updater.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn from_site() -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_github` is never used [INFO] [stdout] --> src/net/updater.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn from_github() -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_latest` is never used [INFO] [stdout] --> src/net/updater.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn check_latest(feed_override: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_for_update` is never used [INFO] [stdout] --> src/net/updater.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn check_for_update(local: &str, feed_override: Option<&str>) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_update` is never used [INFO] [stdout] --> src/net/updater.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn apply_update(rel: &ReleaseInfo) -> Result { [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 = concat!("AmniBrowse/", env!("CARGO_PKG_VERSION"), " (Privacy-First; Amni-Scient)"); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `clear_all_data_now` is never used [INFO] [stdout] --> src/storage/config.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl BrowserConfig { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn clear_all_data_now() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `list_folder`, `search`, and `to_json` are never used [INFO] [stdout] --> src/storage/bookmarks.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl BookmarkManager { [INFO] [stdout] | -------------------- methods in this implementation [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] 97 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/storage/history.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl HistoryManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn import_visit(&mut self, url: &str, title: &str, count: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn search(&self, query: &str) -> Vec<&HistoryEntry> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_by_date(&self, date: NaiveDate) -> Vec<&HistoryEntry> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn delete_entry(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn delete_by_url(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn clear_range(&mut self, from: DateTime, to: DateTime) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn entry_count(&self) -> usize { self.entries.len() } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 108 | 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:95:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl SessionManager { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | 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 `cancel_download` is never used [INFO] [stdout] --> src/storage/downloads.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl DownloadManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn cancel_download(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `data_dir` are never used [INFO] [stdout] --> src/storage/profiles.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Profile { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 15 | pub fn new(name: &str, color: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn data_dir(&self) -> PathBuf { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/storage/profiles.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl ProfileManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn save(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn create_profile(&mut self, name: &str, color: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn delete_profile(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn switch_profile(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn active_profile(&self) -> &Profile { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn rename_profile(&mut self, id: &str, new_name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DetectedBrowser` is never constructed [INFO] [stdout] --> src/storage/import_browsers.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DetectedBrowser { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImportReport` is never constructed [INFO] [stdout] --> src/storage/import_browsers.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct ImportReport { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `local_app` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn local_app() -> PathBuf { dirs::data_local_dir().unwrap_or_else(|| PathBuf::from(".")) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `roaming_app` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn roaming_app() -> PathBuf { dirs::config_dir().unwrap_or_else(|| PathBuf::from(".")) } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chrome_user_data` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn chrome_user_data() -> PathBuf { local_app().join("Google").join("Chrome").join("User Data") } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edge_user_data` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn edge_user_data() -> PathBuf { local_app().join("Microsoft").join("Edge").join("User Data") } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brave_user_data` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn brave_user_data() -> PathBuf { local_app().join("BraveSoftware").join("Brave-Browser").join("User Data") } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn detect() -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `firefox_places` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn firefox_places() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve_ff_path` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn resolve_ff_path(p: &str) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_chromium_bookmarks` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn parse_chromium_bookmarks(json: &str) -> Vec<(String, String, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `walk_bm` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:64:4 [INFO] [stdout] | [INFO] [stdout] 64 | fn walk_bm(node: &Value, folder: &str, out: &mut Vec<(String, String, Option)>) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_profile` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn chromium_profile(root: &Path) -> PathBuf { root.join("Default") } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `import_chromium_bookmarks_file` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn import_chromium_bookmarks_file(path: &Path) -> Vec<(String, String, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `copy_unlocked` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn copy_unlocked(src: &Path) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_history_rows` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn chromium_history_rows(db: &Path) -> Vec<(String, String, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `firefox_bookmark_rows` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn firefox_bookmark_rows(db: &Path) -> Vec<(String, String, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `firefox_history_rows` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn firefox_history_rows(db: &Path) -> Vec<(String, String, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dpapi_unprotect` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn dpapi_unprotect(_: &[u8]) -> Option> { None } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_master_key` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:130:8 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn chromium_master_key(local_state: &Path) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_chrome_secret` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn decrypt_chrome_secret(master: &[u8], blob: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_logins` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:149:8 [INFO] [stdout] | [INFO] [stdout] 149 | pub fn chromium_logins(db: &Path, master: &[u8]) -> Vec<(String, String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_import` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn apply_import(id: &str, bookmarks: &mut crate::storage::bookmarks::BookmarkManager, history: &mut crate::storage::history::Hi... [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `source_root` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:205:8 [INFO] [stdout] | [INFO] [stdout] 205 | pub fn source_root(id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PBKDF2_ITERATIONS` is never used [INFO] [stdout] --> src/crypto/vault.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const PBKDF2_ITERATIONS: u32 = 600_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SALT_LEN` is never used [INFO] [stdout] --> src/crypto/vault.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const SALT_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vault`, `dk`, and `is_unlocked` are never read [INFO] [stdout] --> src/crypto/vault.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct PasswordManager { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 51 | vault: PasswordVault, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 52 | dk: Option<[u8; KEY_LEN]>, [INFO] [stdout] | ^^ [INFO] [stdout] 53 | is_unlocked: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/crypto/vault.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl PasswordManager { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn derived_key(&self) -> Option<[u8; KEY_LEN]> { self.dk } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn save_vault(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn derive_key(master_password: &str, salt: &[u8]) -> [u8; KEY_LEN] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn initialize(&mut self, master_password: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn unlock(&mut self, master_password: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn lock(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn is_unlocked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn is_initialized(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn add_credential( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn get_password(&self, credential_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn remove_credential(&mut self, credential_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn list_credentials(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn matches_for_url(&self, url: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn search_credentials(&self, query: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn generate_password(length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn wipe_vault(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CredentialSummary` is never constructed [INFO] [stdout] --> src/crypto/vault.rs:307:12 [INFO] [stdout] | [INFO] [stdout] 307 | pub struct CredentialSummary { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/crypto/autofill.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl AddressProfile { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 22 | pub fn new(label: &str, name: &str, street: &str, city: &str, state: &str, zip: &str, country: &str, phone: &str, email: &str) -... [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `store` and `enc_key` are never read [INFO] [stdout] --> src/crypto/autofill.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct AutofillManager { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 46 | store: AutofillStore, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | enc_key: Option<[u8; 32]>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/crypto/autofill.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 49 | impl AutofillManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | fn save(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn set_encryption_key(&mut self, key: [u8; 32]) { self.enc_key = Some(key); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | pub fn add_address(&mut self, addr: AddressProfile) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn remove_address(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn list_addresses(&self) -> &[AddressProfile] { &self.store.addresses } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 76 | pub fn add_card(&mut self, label: &str, cardholder: &str, number: &str, expiry: &str, card_type: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn decrypt_card_number(&self, card_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn remove_card(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn list_cards(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn suggest_for_site(&self, _url: &str) -> AutofillSuggestion { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn addresses_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn cards_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CardSummary` is never constructed [INFO] [stdout] --> src/crypto/autofill.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 127 | pub struct CardSummary { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AutofillSuggestion` is never constructed [INFO] [stdout] --> src/crypto/autofill.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub struct AutofillSuggestion { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoginMatch` is never constructed [INFO] [stdout] --> src/crypto/pm.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct LoginMatch { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PmState` is never constructed [INFO] [stdout] --> src/crypto/pm.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PmState { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_config`, `unlocked`, and `label` are never used [INFO] [stdout] --> src/crypto/pm.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl PmState { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 21 | pub fn from_config(kind: &str, cli: Option, db: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn unlocked(&self, vault: &PasswordManager) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn label(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize_kind` is never used [INFO] [stdout] --> src/crypto/pm.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn normalize_kind(k: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `which` is never used [INFO] [stdout] --> src/crypto/pm.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn which(name: &str) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bin_for` is never used [INFO] [stdout] --> src/crypto/pm.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn bin_for(state: &PmState) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_cmd` is never used [INFO] [stdout] --> src/crypto/pm.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn run_cmd(bin: &str, args: &[&str], env: &[(&str, &str)], stdin: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unlock` is never used [INFO] [stdout] --> src/crypto/pm.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn unlock(state: &mut PmState, secret: &str, vault: &mut PasswordManager) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matches_for_url` is never used [INFO] [stdout] --> src/crypto/pm.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn matches_for_url(state: &mut PmState, vault: &PasswordManager, url: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `secret_for` is never used [INFO] [stdout] --> src/crypto/pm.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn secret_for(state: &PmState, vault: &PasswordManager, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bw_list` is never used [INFO] [stdout] --> src/crypto/pm.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn bw_list(state: &PmState, url: &str, host: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_bw_items` is never used [INFO] [stdout] --> src/crypto/pm.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | pub fn parse_bw_items(raw: &str, host: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bw_get` is never used [INFO] [stdout] --> src/crypto/pm.rs:144:4 [INFO] [stdout] | [INFO] [stdout] 144 | fn bw_get(state: &PmState, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `op_list` is never used [INFO] [stdout] --> src/crypto/pm.rs:152:4 [INFO] [stdout] | [INFO] [stdout] 152 | fn op_list(state: &PmState, host: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_op_items` is never used [INFO] [stdout] --> src/crypto/pm.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn parse_op_items(raw: &str, host: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `op_get` is never used [INFO] [stdout] --> src/crypto/pm.rs:170:4 [INFO] [stdout] | [INFO] [stdout] 170 | fn op_get(state: &PmState, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_op_secret` is never used [INFO] [stdout] --> src/crypto/pm.rs:175:8 [INFO] [stdout] | [INFO] [stdout] 175 | pub fn parse_op_secret(raw: &str) -> Option<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kpxc_list` is never used [INFO] [stdout] --> src/crypto/pm.rs:192:4 [INFO] [stdout] | [INFO] [stdout] 192 | fn kpxc_list(state: &PmState, host: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kpxc_get` is never used [INFO] [stdout] --> src/crypto/pm.rs:199:4 [INFO] [stdout] | [INFO] [stdout] 199 | fn kpxc_get(state: &PmState, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `import_chrome_csv` is never used [INFO] [stdout] --> src/crypto/pm.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn import_chrome_csv(vault: &mut PasswordManager, csv: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_csv_line` is never used [INFO] [stdout] --> src/crypto/pm.rs:221:8 [INFO] [stdout] | [INFO] [stdout] 221 | pub fn parse_csv_line(line: &str) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `summaries_json` is never used [INFO] [stdout] --> src/crypto/pm.rs:238:8 [INFO] [stdout] | [INFO] [stdout] 238 | pub fn summaries_json(list: &[LoginMatch]) -> String { [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: function `browser_html` is never used [INFO] [stdout] --> src/ui/webview.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn browser_html(theme: &Theme) -> 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: associated items `add_custom_theme`, `remove_custom_theme`, `theme_to_css_vars`, and `all_themes_json` are never used [INFO] [stdout] --> src/ui/theme.rs:404:12 [INFO] [stdout] | [INFO] [stdout] 361 | impl ThemeConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 404 | pub fn add_custom_theme(&mut self, theme: Theme) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn remove_custom_theme(&mut self, theme_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 424 | pub fn theme_to_css_vars(theme: &Theme) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn all_themes_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `css` is never used [INFO] [stdout] --> src/ui/reader.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ReaderTheme { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 21 | pub fn css(&self) -> (&str, &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `active` and `settings` are never read [INFO] [stdout] --> src/ui/reader.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ReaderMode { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 30 | pub active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 31 | pub settings: ReaderSettings, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `toggle`, `extraction_js`, `render_html`, and `settings_json` are never used [INFO] [stdout] --> src/ui/reader.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl ReaderMode { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 34 | pub fn new() -> Self { Self { active: false, settings: ReaderSettings::default() } } [INFO] [stdout] 35 | pub fn toggle(&mut self) -> bool { self.active = !self.active; self.active } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 36 | pub fn extraction_js() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn render_html(&self, title: &str, content: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn settings_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `ATLAS` is never used [INFO] [stdout] --> src/ui/emoji.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | static ATLAS: LazyLock> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^ [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 `e` is never used [INFO] [stdout] --> src/ui/emoji.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn e(name: &str) -> &str { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eh` is never used [INFO] [stdout] --> src/ui/emoji.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn eh(name: &str) -> String { [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: constant `TAB_STRIP_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const TAB_STRIP_H: u32 = 40; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAV_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const NAV_H: u32 = 44; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BOOKMARKS_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const BOOKMARKS_H: u32 = 28; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOTAL_CHROME_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const TOTAL_CHROME_H: u32 = TAB_STRIP_H + NAV_H + BOOKMARKS_H; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CONTENT_PUSH_H` is never used [INFO] [stdout] --> src/ui/tokens.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const CONTENT_PUSH_H: u32 = TOTAL_CHROME_H + 4; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAB_PAD` is never used [INFO] [stdout] --> src/ui/tokens.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const TAB_PAD: &str = "6px 12px"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CLOSE_HITBOX` is never used [INFO] [stdout] --> src/ui/tokens.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const CLOSE_HITBOX: u32 = 28; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAV_HIT` is never used [INFO] [stdout] --> src/ui/tokens.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const NAV_HIT: u32 = 36; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `developer_html` is never used [INFO] [stdout] --> src/ui/developer.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn developer_html(theme: &Theme) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `IpcMessage` is never used [INFO] [stdout] --> src/net/ipc.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum IpcMessage { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `IpcResponse` is never used [INFO] [stdout] --> src/net/ipc.rs:220:10 [INFO] [stdout] | [INFO] [stdout] 220 | pub enum IpcResponse { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_js_call` is never used [INFO] [stdout] --> src/net/ipc.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 308 | impl IpcResponse { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 309 | pub fn to_js_call(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ipc_message` is never used [INFO] [stdout] --> src/net/ipc.rs:314:8 [INFO] [stdout] | [INFO] [stdout] 314 | pub fn parse_ipc_message(raw: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [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 `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: function `exe_path` is never used [INFO] [stdout] --> src/platform/os_default.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn exe_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_command_line` is never used [INFO] [stdout] --> src/platform/os_default.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn open_command_line(exe: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register_browser` is never used [INFO] [stdout] --> src/platform/os_default.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn register_browser() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_path` is never used [INFO] [stdout] --> src/platform/os_default.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn open_path(path: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Act` is never used [INFO] [stdout] --> src/platform/webview.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | enum Act { Nav(String), Js(String), Title(String) } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Browser` is never constructed [INFO] [stdout] --> src/platform/webview.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Browser; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `run` are never used [INFO] [stdout] --> src/platform/webview.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Browser { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { Self } [INFO] [stdout] | ^^^ [INFO] [stdout] 18 | pub fn run(self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `urls_equiv` is never used [INFO] [stdout] --> src/platform/webview.rs:224:4 [INFO] [stdout] | [INFO] [stdout] 224 | fn urls_equiv(a: &str, b: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chrome_init_js` is never used [INFO] [stdout] --> src/platform/webview.rs:238:4 [INFO] [stdout] | [INFO] [stdout] 238 | fn chrome_init_js(theme: &Theme, tabs_seed: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `core` is never read [INFO] [stdout] --> src/platform/chromium.rs:43:39 [INFO] [stdout] | [INFO] [stdout] 43 | struct Tab { uid: u64, view: WebView, core: Option, url: String, title: String, private: bool, loading: bool, zoom: f64, can_b... [INFO] [stdout] | --- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `chrome_hwnd` is never read [INFO] [stdout] --> src/platform/chromium.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 44 | struct App { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | chrome_hwnd: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/tabs.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Tab { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn new_private(url: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn set_split(&mut self, mode: SplitViewMode, url: Option<&str>) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn clear_split(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn can_go_back(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn can_go_forward(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn go_back(&mut self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn go_forward(&mut self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn set_group(&mut self, group: Option) { self.panel_group = group; } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/tabs.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 145 | impl TabManager { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn new_private_tab(&mut self, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn active_tab(&self) -> Option<&Tab> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn tab_count(&self) -> usize { self.tabs.len() } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 199 | pub fn private_tab_count(&self) -> usize { self.tabs.iter().filter(|t| t.is_private).count() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 200 | pub fn has_private_tabs(&self) -> bool { self.tabs.iter().any(|t| t.is_private) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 201 | pub fn zoom_in(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn zoom_out(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn zoom_reset(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn zoom_set(&mut self, level: f64) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn set_tab_group(&mut self, id: &str, group: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn group_names(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `clean_url` and `is_blocked_url` are never used [INFO] [stdout] --> src/engine/adblocker.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 173 | impl AdBlocker { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn clean_url(url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 293 | pub fn is_blocked_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/extensions.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl ExtensionManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn extensions_dir_public() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn open_dir() -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn write_sample() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn install_from_dir(&mut self, source: &PathBuf) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn copy_dir_recursive(src: &PathBuf, dst: &PathBuf) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn enable(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn disable(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn remove(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn list(&self) -> &[Extension] { &self.registry.extensions } [INFO] [stdout] | ^^^^ [INFO] [stdout] 177 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtSummary` is never constructed [INFO] [stdout] --> src/engine/extensions.rs:187:8 [INFO] [stdout] | [INFO] [stdout] 187 | struct ExtSummary { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/permissions.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl PermissionsManager { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn save(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn normalize_site(url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_permission(&self, url: &str, perm: &PermissionType) -> PermissionState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn set_permission(&mut self, url: &str, perm: PermissionType, state: PermissionState) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn reset_site(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn reset_all(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn defaults_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/devtools.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl DevToolsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 53 | pub fn new() -> Self { Self::default() } [INFO] [stdout] 54 | pub fn toggle(&mut self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_panel(&mut self, panel: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn log_console(&mut self, level: LogLevel, message: &str, source: Option<&str>, line: Option) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn log_network(&mut self, entry: NetworkEntry) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn clear_console(&mut self) { self.console_entries.clear(); } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 73 | pub fn clear_network(&mut self) { self.network_entries.clear(); } [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] 82 | pub fn state_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [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: fields `enabled`, `provider`, `cache`, and `last_clean` are never read [INFO] [stdout] --> src/net/dns.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 58 | pub struct DohResolver { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 59 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 60 | pub provider: DohProvider, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | cache: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 62 | last_clean: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods 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] 121 | pub fn cache_size(&self) -> usize { self.cache.len() } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 122 | pub fn clear_cache(&mut self) { self.cache.clear(); } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 123 | pub fn set_provider(&mut self, provider: DohProvider) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn provider_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `body`, `headers`, `status`, `inserted`, and `ttl` are never read [INFO] [stdout] --> src/net/http.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | struct CacheEntry { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 17 | body: Bytes, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | headers: Vec<(String, String)>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 19 | status: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | inserted: Instant, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 21 | ttl: Duration, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client`, `cache`, `dnt`, `block_3pc`, `user_agent`, and `default_auth` are never read [INFO] [stdout] --> src/net/http.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct AmniClient { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 24 | client: Client, Full>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | cache: Arc>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 26 | dnt: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | block_3pc: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 28 | user_agent: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 29 | default_auth: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AmniResponse` is never constructed [INFO] [stdout] --> src/net/http.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct AmniResponse { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/net/http.rs:62:18 [INFO] [stdout] | [INFO] [stdout] 38 | impl AmniClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub async fn get(&self, url: &str) -> Result> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn post(&self, url: &str, content_type: &str, body: Bytes) -> Result Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn extract_cache_ttl(&self, headers: &[(String, String)]) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn clear_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn cache_size(&self) -> 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] 134 | [INFO] [stdout] 135 | pub async fn get_with_headers(&self, url: &str, extra_headers: &[(&str, &str)]) -> Result 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: struct `DevToolsSummary` is never constructed [INFO] [stdout] --> src/engine/devtools.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | struct DevToolsSummary { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RiskLevel` is never used [INFO] [stdout] --> src/engine/page_safety.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum RiskLevel { Safe, Low, Medium, High, Critical } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_str`, `rank`, and `max` are never used [INFO] [stdout] --> src/engine/page_safety.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl RiskLevel { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 7 | pub fn as_str(self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn rank(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | fn max(self, other: Self) -> Self { if other.rank() > self.rank() { other } else { self } } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SafetyReport` is never constructed [INFO] [stdout] --> src/engine/page_safety.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct SafetyReport { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SUSPICIOUS_TLDS` is never used [INFO] [stdout] --> src/engine/page_safety.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | const SUSPICIOUS_TLDS: &[&str] = &["zip", "mov", "tk", "ml", "ga", "cf", "gq", "top", "xyz", "work", "click", "country", "stream", "... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOOKALIKE` is never used [INFO] [stdout] --> src/engine/page_safety.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const LOOKALIKE: &[(&str, &str)] = &[ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SENSITIVE_PATH` is never used [INFO] [stdout] --> src/engine/page_safety.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const SENSITIVE_PATH: &[&str] = &["login", "signin", "sign-in", "password", "passwd", "wallet", "crypto", "seed", "mnemonic", "verif... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assess` is never used [INFO] [stdout] --> src/engine/page_safety.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn assess(raw: &str) -> SafetyReport { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assess_json` is never used [INFO] [stdout] --> src/engine/page_safety.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn assess_json(raw: &str) -> String { [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: multiple methods are never used [INFO] [stdout] --> src/net/http.rs:356:12 [INFO] [stdout] | [INFO] [stdout] 355 | impl AmniResponse { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 356 | pub fn text(&self) -> Result { [INFO] [stdout] | ^^^^ [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] 390 | pub fn is_redirect(&self) -> bool { self.status >= 300 && self.status < 400 } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 391 | pub fn redirect_url(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cookies`, `block_third_party`, `allow_list`, and `deny_list` are never read [INFO] [stdout] --> src/net/cookies.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct CookieJar { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 19 | cookies: HashMap>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | block_third_party: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | allow_list: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | deny_list: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/cookies.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl CookieJar { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn set_cookie(&mut self, cookie: Cookie, request_domain: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn get_cookies(&self, domain: &str, path: &str, is_secure: bool) -> Vec<&Cookie> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn cookie_header(&self, domain: &str, path: &str, is_secure: bool) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn remove_cookie(&mut self, domain: &str, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [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] 65 | pub fn parse_set_cookie(header: &str, request_domain: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn is_same_site(&self, cookie_domain: &str, request_domain: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn domain_matches(&self, cookie_domain: &str, request_domain: &str) -> bool { [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 `github_new_issue_url` is never used [INFO] [stdout] --> src/engine/bug_report.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn github_new_issue_url(title: &str, user_body: &str, diag: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_diag` is never used [INFO] [stdout] --> src/engine/bug_report.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn collect_diag(page_url: &str, extra: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AmniDom` is never constructed [INFO] [stdout] --> src/engine/dom.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct AmniDom { [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: struct `PageMeta` is never constructed [INFO] [stdout] --> src/engine/dom.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PageMeta { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/dom.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl AmniDom { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 29 | pub fn parse(html: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn root(&self) -> &Handle { &self.dom.document } [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | pub fn extract_meta(&self) -> PageMeta { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn walk_meta(&self, handle: &Handle, meta: &mut PageMeta) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn walk_meta_inner(&self, handle: &Handle, meta: &mut PageMeta, parent_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn text_of(&self, handle: &Handle) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn collect_text(&self, handle: &Handle, out: &mut String) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn extract_reader_content(&self) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn extract_article(&self, handle: &Handle, out: &mut String, depth: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn serialize_inline(&self, handle: &Handle, out: &mut String) { [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: 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: multiple variants are never constructed [INFO] [stdout] --> src/net/csp.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum CspDirective { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 4 | DefaultSrc, ScriptSrc, StyleSrc, ImgSrc, FontSrc, ConnectSrc, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] 5 | MediaSrc, FrameSrc, ObjectSrc, BaseUri, FormAction, FrameAncestors, ReportUri, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspDirective` 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 functions `from_str` and `resource_type_to_directive` are never used [INFO] [stdout] --> src/net/csp.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl CspDirective { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 8 | pub fn from_str(s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn resource_type_to_directive(resource_type: &str) -> Self { [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: multiple variants are never constructed [INFO] [stdout] --> src/net/csp.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 41 | pub enum CspSource { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 42 | Self_, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 43 | None_, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 44 | UnsafeInline, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 45 | UnsafeEval, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 46 | Https, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | Data, [INFO] [stdout] | ^^^^ [INFO] [stdout] 48 | Blob, [INFO] [stdout] | ^^^^ [INFO] [stdout] 49 | Host(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] 50 | Nonce(String), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | Hash(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspSource` 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 `parse` and `matches` are never used [INFO] [stdout] --> src/net/csp.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl CspSource { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 54 | pub fn parse(s: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn matches(&self, url: &str, page_origin: &str, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `url_matches_origin` is never used [INFO] [stdout] --> src/net/csp.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn url_matches_origin(url: &str, origin: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_origin` is never used [INFO] [stdout] --> src/net/csp.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn extract_origin(url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client`, `cookies`, `image_cache`, `cors`, `csp`, and `canvas_registry` are never read [INFO] [stdout] --> src/engine/pipeline.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct RenderPipeline { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 16 | pub client: AmniClient, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | pub cookies: RwLock, [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: struct `PageResult` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PageResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PageSummary` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct PageSummary { [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:58:18 [INFO] [stdout] | [INFO] [stdout] 47 | impl RenderPipeline { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub async fn fetch_and_parse(&self, url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub async fn fetch_reader(&self, url: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [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 `host_matches` is never used [INFO] [stdout] --> src/net/csp.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn host_matches(url: &str, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `directives` and `page_origin` are never read [INFO] [stdout] --> src/net/csp.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 111 | pub struct CspPolicy { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 112 | pub directives: HashMap>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 113 | pub page_origin: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CspPolicy` 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`, `allows`, `allows_inline_script`, `allows_inline_style`, and `allows_eval` are never used [INFO] [stdout] --> src/net/csp.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl CspPolicy { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn new(page_origin: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn allows(&self, directive: &CspDirective, url: &str, nonce: Option<&str>) -> bool { [INFO] [stdout] | ^^^^^^ [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: function `parse_policy` is never used [INFO] [stdout] --> src/net/csp.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn parse_policy(header: &str, page_origin: &str) -> CspPolicy { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CspResult` is never constructed [INFO] [stdout] --> src/net/csp.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 181 | pub struct CspResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CspViolation` is never constructed [INFO] [stdout] --> src/net/csp.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct CspViolation { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enforce_policy`, `report_only_policy`, and `document_uri` are never read [INFO] [stdout] --> src/net/csp.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 191 | pub struct CspEnforcer { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 192 | pub enforce_policy: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 193 | pub report_only_policy: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 194 | pub document_uri: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/net/csp.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl CspEnforcer { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 197 | pub fn new(document_uri: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn set_enforce(&mut self, header: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn set_report_only(&mut self, header: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn from_headers(document_uri: &str, headers: &[(String, String)]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn check_resource(&self, resource_type: &str, url: &str) -> CspResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [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 `GH_API` is never used [INFO] [stdout] --> src/net/updater.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const GH_API: &str = "https://api.github.com/repos/Amnibro/Amni-Browse/releases/latest"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SITE_FEED` is never used [INFO] [stdout] --> src/net/updater.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const SITE_FEED: &str = "https://amni-scient.com/browse/latest.json"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GH_REPO` is never used [INFO] [stdout] --> src/net/updater.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const GH_REPO: &str = "Amnibro/Amni-Browse"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReleaseInfo` is never constructed [INFO] [stdout] --> src/net/updater.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ReleaseInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `install_dir` is never used [INFO] [stdout] --> src/net/updater.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn install_dir() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_installed_copy` is never used [INFO] [stdout] --> src/net/updater.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn is_installed_copy() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ua` is never used [INFO] [stdout] --> src/net/updater.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn ua() -> String { format!("AmniBrowse/{} (+https://amni-scient.com)", env!("CARGO_PKG_VERSION")) } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `http_get` is never used [INFO] [stdout] --> src/net/updater.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn http_get(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_site` is never used [INFO] [stdout] --> src/net/updater.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn from_site() -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_github` is never used [INFO] [stdout] --> src/net/updater.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn from_github() -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_latest` is never used [INFO] [stdout] --> src/net/updater.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn check_latest(feed_override: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_for_update` is never used [INFO] [stdout] --> src/net/updater.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn check_for_update(local: &str, feed_override: Option<&str>) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_update` is never used [INFO] [stdout] --> src/net/updater.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn apply_update(rel: &ReleaseInfo) -> Result { [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 = concat!("AmniBrowse/", env!("CARGO_PKG_VERSION"), " (Privacy-First; Amni-Scient)"); [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: associated function `clear_all_data_now` is never used [INFO] [stdout] --> src/storage/config.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl BrowserConfig { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn clear_all_data_now() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `list_folder`, `search`, and `to_json` are never used [INFO] [stdout] --> src/storage/bookmarks.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl BookmarkManager { [INFO] [stdout] | -------------------- methods in this implementation [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] 97 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/storage/history.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl HistoryManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn import_visit(&mut self, url: &str, title: &str, count: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn search(&self, query: &str) -> Vec<&HistoryEntry> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_by_date(&self, date: NaiveDate) -> Vec<&HistoryEntry> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn delete_entry(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn delete_by_url(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn clear_range(&mut self, from: DateTime, to: DateTime) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn entry_count(&self) -> usize { self.entries.len() } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 108 | 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:95:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl SessionManager { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | 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: 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: method `cancel_download` is never used [INFO] [stdout] --> src/storage/downloads.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl DownloadManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn cancel_download(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `data_dir` are never used [INFO] [stdout] --> src/storage/profiles.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Profile { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 15 | pub fn new(name: &str, color: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn data_dir(&self) -> PathBuf { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/storage/profiles.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl ProfileManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn save(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn create_profile(&mut self, name: &str, color: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn delete_profile(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn switch_profile(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn active_profile(&self) -> &Profile { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn rename_profile(&mut self, id: &str, new_name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DetectedBrowser` is never constructed [INFO] [stdout] --> src/storage/import_browsers.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DetectedBrowser { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImportReport` is never constructed [INFO] [stdout] --> src/storage/import_browsers.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct ImportReport { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `local_app` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn local_app() -> PathBuf { dirs::data_local_dir().unwrap_or_else(|| PathBuf::from(".")) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `roaming_app` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn roaming_app() -> PathBuf { dirs::config_dir().unwrap_or_else(|| PathBuf::from(".")) } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chrome_user_data` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn chrome_user_data() -> PathBuf { local_app().join("Google").join("Chrome").join("User Data") } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edge_user_data` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn edge_user_data() -> PathBuf { local_app().join("Microsoft").join("Edge").join("User Data") } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brave_user_data` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn brave_user_data() -> PathBuf { local_app().join("BraveSoftware").join("Brave-Browser").join("User Data") } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn detect() -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `firefox_places` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn firefox_places() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resolve_ff_path` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:49:4 [INFO] [stdout] | [INFO] [stdout] 49 | fn resolve_ff_path(p: &str) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_profile` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn chromium_profile(root: &Path) -> PathBuf { root.join("Default") } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `import_chromium_bookmarks_file` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn import_chromium_bookmarks_file(path: &Path) -> Vec<(String, String, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `copy_unlocked` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn copy_unlocked(src: &Path) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_history_rows` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn chromium_history_rows(db: &Path) -> Vec<(String, String, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `firefox_bookmark_rows` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn firefox_bookmark_rows(db: &Path) -> Vec<(String, String, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `firefox_history_rows` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn firefox_history_rows(db: &Path) -> Vec<(String, String, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dpapi_unprotect` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn dpapi_unprotect(_: &[u8]) -> Option> { None } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_master_key` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:130:8 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn chromium_master_key(local_state: &Path) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_chrome_secret` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn decrypt_chrome_secret(master: &[u8], blob: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chromium_logins` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:149:8 [INFO] [stdout] | [INFO] [stdout] 149 | pub fn chromium_logins(db: &Path, master: &[u8]) -> Vec<(String, String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_import` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn apply_import(id: &str, bookmarks: &mut crate::storage::bookmarks::BookmarkManager, history: &mut crate::storage::history::Hi... [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `source_root` is never used [INFO] [stdout] --> src/storage/import_browsers.rs:205:8 [INFO] [stdout] | [INFO] [stdout] 205 | pub fn source_root(id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vault`, `dk`, and `is_unlocked` are never read [INFO] [stdout] --> src/crypto/vault.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct PasswordManager { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 51 | vault: PasswordVault, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 52 | dk: Option<[u8; KEY_LEN]>, [INFO] [stdout] | ^^ [INFO] [stdout] 53 | is_unlocked: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/crypto/vault.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl PasswordManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn derived_key(&self) -> Option<[u8; KEY_LEN]> { self.dk } [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn save_vault(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn initialize(&mut self, master_password: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn unlock(&mut self, master_password: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn lock(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn is_unlocked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn is_initialized(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn add_credential( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn get_password(&self, credential_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn remove_credential(&mut self, credential_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn list_credentials(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn matches_for_url(&self, url: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn search_credentials(&self, query: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn wipe_vault(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CredentialSummary` is never constructed [INFO] [stdout] --> src/crypto/vault.rs:307:12 [INFO] [stdout] | [INFO] [stdout] 307 | pub struct CredentialSummary { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/crypto/autofill.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl AddressProfile { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 22 | pub fn new(label: &str, name: &str, street: &str, city: &str, state: &str, zip: &str, country: &str, phone: &str, email: &str) -... [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `store` and `enc_key` are never read [INFO] [stdout] --> src/crypto/autofill.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct AutofillManager { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 46 | store: AutofillStore, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | enc_key: Option<[u8; 32]>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/crypto/autofill.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 49 | impl AutofillManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | fn save(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn set_encryption_key(&mut self, key: [u8; 32]) { self.enc_key = Some(key); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | pub fn add_address(&mut self, addr: AddressProfile) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn remove_address(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn list_addresses(&self) -> &[AddressProfile] { &self.store.addresses } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 76 | pub fn add_card(&mut self, label: &str, cardholder: &str, number: &str, expiry: &str, card_type: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn decrypt_card_number(&self, card_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn remove_card(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn list_cards(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn suggest_for_site(&self, _url: &str) -> AutofillSuggestion { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn addresses_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn cards_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CardSummary` is never constructed [INFO] [stdout] --> src/crypto/autofill.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 127 | pub struct CardSummary { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AutofillSuggestion` is never constructed [INFO] [stdout] --> src/crypto/autofill.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub struct AutofillSuggestion { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PmState` is never constructed [INFO] [stdout] --> src/crypto/pm.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PmState { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_config`, `unlocked`, and `label` are never used [INFO] [stdout] --> src/crypto/pm.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl PmState { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 21 | pub fn from_config(kind: &str, cli: Option, db: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn unlocked(&self, vault: &PasswordManager) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn label(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `which` is never used [INFO] [stdout] --> src/crypto/pm.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn which(name: &str) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bin_for` is never used [INFO] [stdout] --> src/crypto/pm.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn bin_for(state: &PmState) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_cmd` is never used [INFO] [stdout] --> src/crypto/pm.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn run_cmd(bin: &str, args: &[&str], env: &[(&str, &str)], stdin: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unlock` is never used [INFO] [stdout] --> src/crypto/pm.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn unlock(state: &mut PmState, secret: &str, vault: &mut PasswordManager) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matches_for_url` is never used [INFO] [stdout] --> src/crypto/pm.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn matches_for_url(state: &mut PmState, vault: &PasswordManager, url: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `secret_for` is never used [INFO] [stdout] --> src/crypto/pm.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn secret_for(state: &PmState, vault: &PasswordManager, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bw_list` is never used [INFO] [stdout] --> src/crypto/pm.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn bw_list(state: &PmState, url: &str, host: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bw_get` is never used [INFO] [stdout] --> src/crypto/pm.rs:144:4 [INFO] [stdout] | [INFO] [stdout] 144 | fn bw_get(state: &PmState, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `op_list` is never used [INFO] [stdout] --> src/crypto/pm.rs:152:4 [INFO] [stdout] | [INFO] [stdout] 152 | fn op_list(state: &PmState, host: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `op_get` is never used [INFO] [stdout] --> src/crypto/pm.rs:170:4 [INFO] [stdout] | [INFO] [stdout] 170 | fn op_get(state: &PmState, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kpxc_list` is never used [INFO] [stdout] --> src/crypto/pm.rs:192:4 [INFO] [stdout] | [INFO] [stdout] 192 | fn kpxc_list(state: &PmState, host: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kpxc_get` is never used [INFO] [stdout] --> src/crypto/pm.rs:199:4 [INFO] [stdout] | [INFO] [stdout] 199 | fn kpxc_get(state: &PmState, id: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `import_chrome_csv` is never used [INFO] [stdout] --> src/crypto/pm.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn import_chrome_csv(vault: &mut PasswordManager, csv: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `summaries_json` is never used [INFO] [stdout] --> src/crypto/pm.rs:238:8 [INFO] [stdout] | [INFO] [stdout] 238 | pub fn summaries_json(list: &[LoginMatch]) -> String { [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: 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: 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: 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: 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: function `exe_path` is never used [INFO] [stdout] --> src/platform/os_default.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn exe_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register_browser` is never used [INFO] [stdout] --> src/platform/os_default.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn register_browser() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_path` is never used [INFO] [stdout] --> src/platform/os_default.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn open_path(path: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Act` is never used [INFO] [stdout] --> src/platform/webview.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | enum Act { Nav(String), Js(String), Title(String) } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Browser` is never constructed [INFO] [stdout] --> src/platform/webview.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Browser; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `run` are never used [INFO] [stdout] --> src/platform/webview.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Browser { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { Self } [INFO] [stdout] | ^^^ [INFO] [stdout] 18 | pub fn run(self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `urls_equiv` is never used [INFO] [stdout] --> src/platform/webview.rs:224:4 [INFO] [stdout] | [INFO] [stdout] 224 | fn urls_equiv(a: &str, b: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chrome_init_js` is never used [INFO] [stdout] --> src/platform/webview.rs:238:4 [INFO] [stdout] | [INFO] [stdout] 238 | fn chrome_init_js(theme: &Theme, tabs_seed: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `core` is never read [INFO] [stdout] --> src/platform/chromium.rs:43:39 [INFO] [stdout] | [INFO] [stdout] 43 | struct Tab { uid: u64, view: WebView, core: Option, url: String, title: String, private: bool, loading: bool, zoom: f64, can_b... [INFO] [stdout] | --- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `chrome_hwnd` is never read [INFO] [stdout] --> src/platform/chromium.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 44 | struct App { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | chrome_hwnd: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/tabs.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Tab { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn new_private(url: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn set_split(&mut self, mode: SplitViewMode, url: Option<&str>) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn clear_split(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn can_go_back(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn can_go_forward(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn go_back(&mut self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn go_forward(&mut self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/engine/tabs.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 145 | impl TabManager { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn new_private_tab(&mut self, url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn tab_count(&self) -> usize { self.tabs.len() } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 199 | pub fn private_tab_count(&self) -> usize { self.tabs.iter().filter(|t| t.is_private).count() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 200 | pub fn has_private_tabs(&self) -> bool { self.tabs.iter().any(|t| t.is_private) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 201 | pub fn zoom_in(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn zoom_out(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn zoom_reset(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn zoom_set(&mut self, level: f64) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn group_names(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `is_blocked_url` is never used [INFO] [stdout] --> src/engine/adblocker.rs:293:12 [INFO] [stdout] | [INFO] [stdout] 173 | impl AdBlocker { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 293 | pub fn is_blocked_url(url: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/extensions.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl ExtensionManager { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn extensions_dir_public() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn open_dir() -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn write_sample() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn install_from_dir(&mut self, source: &PathBuf) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn copy_dir_recursive(src: &PathBuf, dst: &PathBuf) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn enable(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn disable(&mut self, id: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn remove(&mut self, id: &str) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn list(&self) -> &[Extension] { &self.registry.extensions } [INFO] [stdout] | ^^^^ [INFO] [stdout] 177 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtSummary` is never constructed [INFO] [stdout] --> src/engine/extensions.rs:187:8 [INFO] [stdout] | [INFO] [stdout] 187 | struct ExtSummary { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/engine/permissions.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl PermissionsManager { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn save(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn normalize_site(url: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_permission(&self, url: &str, perm: &PermissionType) -> PermissionState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn set_permission(&mut self, url: &str, perm: PermissionType, state: PermissionState) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn reset_site(&mut self, url: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn reset_all(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn defaults_json(&self) -> 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: multiple methods are never used [INFO] [stdout] --> src/engine/devtools.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl DevToolsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 53 | pub fn new() -> Self { Self::default() } [INFO] [stdout] 54 | pub fn toggle(&mut self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_panel(&mut self, panel: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn log_console(&mut self, level: LogLevel, message: &str, source: Option<&str>, line: Option) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn log_network(&mut self, entry: NetworkEntry) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn clear_console(&mut self) { self.console_entries.clear(); } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 73 | pub fn clear_network(&mut self) { self.network_entries.clear(); } [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] 82 | pub fn state_json(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DevToolsSummary` is never constructed [INFO] [stdout] --> src/engine/devtools.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | struct DevToolsSummary { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/engine/page_safety.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl RiskLevel { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 7 | pub fn as_str(self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assess_json` is never used [INFO] [stdout] --> src/engine/page_safety.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn assess_json(raw: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `github_new_issue_url` is never used [INFO] [stdout] --> src/engine/bug_report.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn github_new_issue_url(title: &str, user_body: &str, diag: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collect_diag` is never used [INFO] [stdout] --> src/engine/bug_report.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn collect_diag(page_url: &str, extra: &str) -> 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: struct `PageMeta` is never constructed [INFO] [stdout] --> src/engine/dom.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PageMeta { [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] 37 | pub fn extract_meta(&self) -> PageMeta { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn walk_meta(&self, handle: &Handle, meta: &mut PageMeta) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn walk_meta_inner(&self, handle: &Handle, meta: &mut PageMeta, parent_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn text_of(&self, handle: &Handle) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn collect_text(&self, handle: &Handle, out: &mut String) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn extract_reader_content(&self) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn extract_article(&self, handle: &Handle, out: &mut String, depth: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn serialize_inline(&self, handle: &Handle, out: &mut String) { [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 `client`, `cookies`, `image_cache`, `cors`, `csp`, and `canvas_registry` are never read [INFO] [stdout] --> src/engine/pipeline.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct RenderPipeline { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 16 | pub client: AmniClient, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | pub cookies: RwLock, [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: struct `PageResult` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct PageResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PageSummary` is never constructed [INFO] [stdout] --> src/engine/pipeline.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct PageSummary { [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:58:18 [INFO] [stdout] | [INFO] [stdout] 47 | impl RenderPipeline { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub async fn fetch_and_parse(&self, url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub async fn fetch_reader(&self, url: &str) -> Result<(String, String), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [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 `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: 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: 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: 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: 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: 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: 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: 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: 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: 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 }, [WARN] too many lines in the log, truncating it