[INFO] cloning repository https://github.com/konnektoren/konnektoren-yew
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/konnektoren/konnektoren-yew" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkonnektoren%2Fkonnektoren-yew", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkonnektoren%2Fkonnektoren-yew'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 190a3aee80edcb41bf76f9bc86994c43b7bd7267
[INFO] checking konnektoren/konnektoren-yew against try#8e819ff5434466e9a823e03871a1775ac7d84ddf for pr-156027
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkonnektoren%2Fkonnektoren-yew" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/konnektoren/konnektoren-yew
[INFO] finished tweaking git repo https://github.com/konnektoren/konnektoren-yew
[INFO] tweaked toml for git repo https://github.com/konnektoren/konnektoren-yew written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/konnektoren/konnektoren-yew on toolchain 8e819ff5434466e9a823e03871a1775ac7d84ddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/konnektoren/konnektoren-rs.git`
[INFO] [stderr]     Updating git repository `https://github.com/chriamue/yew-chat`
[INFO] [stderr]     Updating git repository `https://github.com/chriamue/yew-preview`
[INFO] [stderr]     Updating git repository `https://github.com/chriamue/yew-ssg`
[INFO] [stderr]     Updating git repository `https://github.com/chriamue/yew-tou-rs/`
[INFO] [stderr]     Updating git repository `https://github.com/jakswa/names`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 724 packages to latest Rust 1.98.0-nightly compatible versions
[INFO] [stderr]       Adding bincode v1.3.3 (available: v3.0.0)
[INFO] [stderr]       Adding cargo-cyclonedx v0.4.1 (available: v0.5.9)
[INFO] [stderr]       Adding curve25519-dalek v3.2.0 (available: v3.2.1)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding getrandom v0.3.4 (available: v0.4.2)
[INFO] [stderr]       Adding implicit-clone v0.4.9 (available: v0.6.0)
[INFO] [stderr]       Adding matchit v0.8.4 (available: v0.8.6)
[INFO] [stderr]       Adding proc-macro-crate v3.3.0 (available: v3.5.0)
[INFO] [stderr]       Adding rand v0.8.6 (available: v0.10.1)
[INFO] [stderr]       Adding solana-sdk v2.3.1 (available: v4.0.1)
[INFO] [stderr]       Adding spl-token v7.0.0 (available: v9.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 61465b1cbdf9431ff0eb3b6d731860b793006b989b391f5bf14a3ea93836d5b8
[INFO] running `Command { std: "docker" "start" "-a" "61465b1cbdf9431ff0eb3b6d731860b793006b989b391f5bf14a3ea93836d5b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "61465b1cbdf9431ff0eb3b6d731860b793006b989b391f5bf14a3ea93836d5b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "61465b1cbdf9431ff0eb3b6d731860b793006b989b391f5bf14a3ea93836d5b8", kill_on_drop: false }`
[INFO] [stdout] 61465b1cbdf9431ff0eb3b6d731860b793006b989b391f5bf14a3ea93836d5b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71d6cc2c8d90b41e755441e5b938919733ddef73b66aac6bdec3e4ef2f52b7d2
[INFO] running `Command { std: "docker" "start" "-a" "71d6cc2c8d90b41e755441e5b938919733ddef73b66aac6bdec3e4ef2f52b7d2", kill_on_drop: false }`
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.122
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling wasm-bindgen v0.2.122
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling zerocopy-derive v0.8.50
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]     Checking zlib-rs v0.6.3
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.122
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]    Compiling built v0.8.1
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling implicit-clone-derive v0.1.2
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking imgref v1.12.1
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling virtue v0.0.18
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking pinned v0.1.0
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling bincode_derive v2.0.1
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]     Checking utf8-width v0.1.8
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking unty v0.0.4
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking bincode v2.0.1
[INFO] [stderr]    Compiling yew-macro v0.23.0
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling find-crate v0.6.3
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking tokise v0.2.1
[INFO] [stderr]     Checking html-escape v0.2.13
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking implicit-clone v0.6.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.122
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling gloo-worker-macros v0.1.0
[INFO] [stderr]    Compiling vergen-lib v9.1.0
[INFO] [stderr]    Compiling palette v0.6.1
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking siphasher v1.0.3
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]     Checking phf_shared v0.11.3
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling gloo-worker-macros v0.2.0
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]    Compiling palette_derive v0.6.1
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling cargo-platform v0.3.3
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling vergen v9.1.0
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]     Checking simba v0.9.1
[INFO] [stderr]    Compiling names v0.15.0-dev (https://github.com/jakswa/names#7b0e28c5)
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking js-sys v0.3.99
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]    Compiling cargo_metadata v0.23.1
[INFO] [stderr]     Checking blake2-rfc v0.2.18
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]    Compiling shellexpand v3.1.2
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]    Compiling rust-embed-utils v8.11.0
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]     Checking rmp v0.8.15
[INFO] [stderr]     Checking unidecode v0.3.0
[INFO] [stderr]     Checking svg v0.13.1
[INFO] [stderr]     Checking half v1.8.3
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking rmp-serde v1.3.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stderr]     Checking country-emoji v0.3.5
[INFO] [stderr]     Checking eval v0.4.3
[INFO] [stderr]     Checking isolang v2.4.0
[INFO] [stderr]    Compiling rust-embed-impl v8.11.0
[INFO] [stderr]     Checking uuid v1.23.2
[INFO] [stderr]     Checking zip v4.6.1
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking plot_icon v0.3.0
[INFO] [stderr]    Compiling serial_test_derive v3.5.0
[INFO] [stderr]    Compiling yew-router-macro v0.20.0
[INFO] [stderr]     Checking route-recognizer v0.3.1
[INFO] [stderr]     Checking unicode-id v0.3.6
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking markdown v1.0.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling yew-ssg-router-macros v0.3.0 (https://github.com/chriamue/yew-ssg#cb427c5f)
[INFO] [stderr]    Compiling konnektoren-yew v0.5.14 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking rust-embed v8.11.0
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking implicit-clone v0.4.9
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.72
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking wasm-bindgen-test-shared v0.2.122
[INFO] [stderr]     Checking serial_test v3.5.0
[INFO] [stderr]     Checking rustdct v0.7.1
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking nalgebra v0.34.2
[INFO] [stderr]     Checking qrcode v0.14.1
[INFO] [stderr]     Checking web-sys v0.3.99
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.72
[INFO] [stderr]     Checking serde-wasm-bindgen v0.6.5
[INFO] [stderr]     Checking gloo-timers v0.3.0
[INFO] [stderr]     Checking gloo-timers v0.4.0
[INFO] [stderr]     Checking wasm-bindgen-test v0.3.72
[INFO] [stderr]     Checking imageproc v0.26.2
[INFO] [stderr]     Checking gloo-utils v0.2.0
[INFO] [stderr]     Checking gloo-events v0.2.0
[INFO] [stderr]     Checking gloo-utils v0.3.0
[INFO] [stderr]     Checking gloo-render v0.2.0
[INFO] [stderr]     Checking gloo-dialogs v0.2.0
[INFO] [stderr]     Checking gloo-events v0.3.0
[INFO] [stderr]     Checking gloo-render v0.3.0
[INFO] [stderr]     Checking gloo-dialogs v0.3.0
[INFO] [stderr]     Checking gloo-file v0.3.0
[INFO] [stderr]     Checking gloo-console v0.4.0
[INFO] [stderr]     Checking gloo-net v0.7.0
[INFO] [stderr]     Checking gloo-storage v0.4.0
[INFO] [stderr]     Checking gloo-file v0.4.0
[INFO] [stderr]     Checking gloo-history v0.3.0
[INFO] [stderr]     Checking gloo-net v0.5.0
[INFO] [stderr]     Checking gloo-history v0.2.2
[INFO] [stderr]     Checking gloo-worker v0.5.0
[INFO] [stderr]     Checking gloo-storage v0.3.0
[INFO] [stderr]     Checking gloo-console v0.3.0
[INFO] [stderr]     Checking gloo-worker v0.6.0
[INFO] [stderr]     Checking gloo v0.11.0
[INFO] [stderr]     Checking gloo v0.12.0
[INFO] [stderr]     Checking yew v0.23.0
[INFO] [stderr]     Checking konnektoren-core v0.7.9 (https://github.com/konnektoren/konnektoren-rs.git#4e452616)
[INFO] [stderr]     Checking yew-router v0.20.0
[INFO] [stderr]     Checking yew-chat v0.2.0 (https://github.com/chriamue/yew-chat#4cb58f18)
[INFO] [stderr]     Checking yew-tou-rs v0.3.1 (https://github.com/chriamue/yew-tou-rs/?branch=main#4bc5db5e)
[INFO] [stderr]     Checking yew-ssg-router v0.3.0 (https://github.com/chriamue/yew-ssg#cb427c5f)
[INFO] [stderr]     Checking konnektoren-platform v0.7.9 (https://github.com/konnektoren/konnektoren-rs.git#4e452616)
[INFO] [stdout] warning: unused import: `ChallengeInput`
[INFO] [stdout]  --> src/components/challenge/contextual_choice.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use konnektoren_core::challenges::{ChallengeInput, ChallengeResult, ContextualChoice};
[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: `PackageReader` and `Package`
[INFO] [stdout]  --> src/components/challenge/custom_package.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use konnektoren_core::challenges::{Custom, Package, PackageReader};
[INFO] [stdout]   |                                            ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/components/challenge/dialog.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     /// Returns `true` when `speaker_id` belongs to the second speaker slot,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 289 |     /// meaning the bubble should appear on the right (`chat-end`).
[INFO] [stdout] 290 |     let is_end_speaker = |speaker_id: &str| -> bool { dialog.speakers[1].id == speaker_id };
[INFO] [stdout]     |     ---------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/components/challenge/dialog.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     /// meaning the bubble should appear on the right (`chat-end`).
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 |     let is_end_speaker = |speaker_id: &str| -> bool { dialog.speakers[1].id == speaker_id };
[INFO] [stdout]     |     ---------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::i18n::use_i18n`
[INFO] [stdout]  --> src/components/challenge_rating.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::i18n::use_i18n;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gloo::net::http::Request`
[INFO] [stdout]  --> src/components/challenge_rating.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use gloo::net::http::Request;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components::TimerComponent`
[INFO] [stdout]  --> src/components/leaderboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::components::TimerComponent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::i18n::use_i18n`
[INFO] [stdout]  --> src/components/leaderboard.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::i18n::use_i18n;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Timed`
[INFO] [stdout]  --> src/components/leaderboard.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 | use konnektoren_core::challenges::{PerformanceRecord, Timed};
[INFO] [stdout]   |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::token_selector::TokenSelector`
[INFO] [stdout]  --> src/components/marketplace/wallet/wallet.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::token_selector::TokenSelector;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/components/marketplace/wallet/wallet.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CERTIFICATE_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/certificates_provider.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::repository::{CERTIFICATE_STORAGE_KEY, CertificateRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `INBOX_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/inbox_provider.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::repository::{INBOX_STORAGE_KEY, InboxRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PROFILE_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/profile_provider.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::repository::{PROFILE_STORAGE_KEY, ProfileRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SESSION_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/session_provider.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 |     repository::{SESSION_STORAGE_KEY, SessionRepositoryTrait},
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SETTINGS_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/settings_provider.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::repository::{SETTINGS_STORAGE_KEY, SettingsRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SESSION_STORAGE_KEY`
[INFO] [stdout]  --> src/repository/game_state_persistence_impl.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{SESSION_STORAGE_KEY, SessionRepositoryTrait};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChallengeInput`
[INFO] [stdout]  --> src/components/challenge/contextual_choice.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use konnektoren_core::challenges::{ChallengeInput, ChallengeResult, ContextualChoice};
[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: `PackageReader` and `Package`
[INFO] [stdout]  --> src/components/challenge/custom_package.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use konnektoren_core::challenges::{Custom, Package, PackageReader};
[INFO] [stdout]   |                                            ^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/components/challenge/dialog.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     /// Returns `true` when `speaker_id` belongs to the second speaker slot,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 289 |     /// meaning the bubble should appear on the right (`chat-end`).
[INFO] [stdout] 290 |     let is_end_speaker = |speaker_id: &str| -> bool { dialog.speakers[1].id == speaker_id };
[INFO] [stdout]     |     ---------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/components/challenge/dialog.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     /// meaning the bubble should appear on the right (`chat-end`).
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 |     let is_end_speaker = |speaker_id: &str| -> bool { dialog.speakers[1].id == speaker_id };
[INFO] [stdout]     |     ---------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::i18n::use_i18n`
[INFO] [stdout]  --> src/components/challenge_rating.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::i18n::use_i18n;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gloo::net::http::Request`
[INFO] [stdout]  --> src/components/challenge_rating.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use gloo::net::http::Request;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components::TimerComponent`
[INFO] [stdout]  --> src/components/leaderboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::components::TimerComponent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::i18n::use_i18n`
[INFO] [stdout]  --> src/components/leaderboard.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::i18n::use_i18n;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Timed`
[INFO] [stdout]  --> src/components/leaderboard.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 | use konnektoren_core::challenges::{PerformanceRecord, Timed};
[INFO] [stdout]   |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::token_selector::TokenSelector`
[INFO] [stdout]  --> src/components/marketplace/wallet/wallet.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::token_selector::TokenSelector;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/components/marketplace/wallet/wallet.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CERTIFICATE_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/certificates_provider.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::repository::{CERTIFICATE_STORAGE_KEY, CertificateRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `INBOX_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/inbox_provider.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::repository::{INBOX_STORAGE_KEY, InboxRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PROFILE_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/profile_provider.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::repository::{PROFILE_STORAGE_KEY, ProfileRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SESSION_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/session_provider.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 |     repository::{SESSION_STORAGE_KEY, SessionRepositoryTrait},
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SETTINGS_STORAGE_KEY`
[INFO] [stdout]  --> src/providers/settings_provider.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::repository::{SETTINGS_STORAGE_KEY, SettingsRepositoryTrait};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SESSION_STORAGE_KEY`
[INFO] [stdout]  --> src/repository/game_state_persistence_impl.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{SESSION_STORAGE_KEY, SessionRepositoryTrait};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/repository/local_storage.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repository_config`
[INFO] [stdout]    --> src/app.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let repository_config = create_repositories(storage, Arc::new(session_initilizer));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repository_config`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repository_config`
[INFO] [stdout]    --> src/app_ssr.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let repository_config = create_repositories(storage, Arc::new(session_initilizer));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repository_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/components/ads/advertisement.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             client,
[INFO] [stdout]     |             ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]    --> src/components/ads/advertisement.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             slot,
[INFO] [stdout]     |             ^^^^ help: try ignoring the field: `slot: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/components/certificates/certificate.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let data = share_url.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_copied_message`
[INFO] [stdout]   --> src/components/certificates/certificate.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let show_copied_message = show_copied_message.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_copied_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `choice_index`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |         Callback::from(move |(choice_index, option_index): (usize, usize)| {
[INFO] [stdout]     |                               ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_choice_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `option_index`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:115:45
[INFO] [stdout]     |
[INFO] [stdout] 115 |         Callback::from(move |(choice_index, option_index): (usize, usize)| {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_option_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selections`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let selections = selections.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let challenge = props.challenge.clone();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge_result`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let challenge_result = challenge_result.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_index`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let item_index = item_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `html_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let html_content = html_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_html_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `css_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let css_content = css_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_css_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `js_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let js_content = js_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_js_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i18n_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let i18n_content = i18n_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_i18n_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loading`
[INFO] [stdout]   --> src/components/challenge/custom.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let loading = loading.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/components/challenge/custom.rs:150:28
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub async fn fetch_content(path: &str, handle: UseStateHandle<String>) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/components/challenge/custom.rs:150:40
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub async fn fetch_content(path: &str, handle: UseStateHandle<String>) {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/components/challenge/custom.rs:161:25
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub async fn fetch_file(path: &str) -> Result<String, String> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/challenge/custom_package.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn custom_package_component(props: &CustomPackageComponentProps) -> Html {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `html_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let html_content = html_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_html_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `css_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let css_content = css_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_css_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `js_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let js_content = js_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_js_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i18n_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let i18n_content = i18n_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_i18n_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let challenge = props.challenge.clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loading`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let loading = loading.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_loader`
[INFO] [stdout]   --> src/components/challenge/informative_markdown.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let asset_loader = use_state(AssetLoader::default);
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `markdown_path`
[INFO] [stdout]   --> src/components/challenge/informative_markdown.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let markdown_path = match informative_text {
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_markdown_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repository_config`
[INFO] [stdout]    --> src/app.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let repository_config = create_repositories(storage, Arc::new(session_initilizer));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repository_config`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repository_config`
[INFO] [stdout]    --> src/app_ssr.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let repository_config = create_repositories(storage, Arc::new(session_initilizer));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repository_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/components/ads/advertisement.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             client,
[INFO] [stdout]     |             ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]    --> src/components/ads/advertisement.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             slot,
[INFO] [stdout]     |             ^^^^ help: try ignoring the field: `slot: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:292:30
[INFO] [stdout]     |
[INFO] [stdout] 292 |         Callback::from(move |event: TouchEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:268:30
[INFO] [stdout]     |
[INFO] [stdout] 268 |         Callback::from(move |event: TouchEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:239:30
[INFO] [stdout]     |
[INFO] [stdout] 239 |         Callback::from(move |event: DragEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:205:30
[INFO] [stdout]     |
[INFO] [stdout] 205 |         Callback::from(move |event: DragEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 |         Callback::from(move |event: DragEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:161:30
[INFO] [stdout]     |
[INFO] [stdout] 161 |         Callback::from(move |index: usize| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let selected_index = selected_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_order`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let current_order = current_order.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_order`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let current_order = current_order.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_order`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let current_order = current_order.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:325:13
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:186:20
[INFO] [stdout]     |
[INFO] [stdout] 186 |             move |(e, target_row_index, target_col_index): (DragEvent, usize, usize)| {
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_row_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:186:23
[INFO] [stdout]     |
[INFO] [stdout] 186 |             move |(e, target_row_index, target_col_index): (DragEvent, usize, usize)| {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_row_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_col_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:186:41
[INFO] [stdout]     |
[INFO] [stdout] 186 |             move |(e, target_row_index, target_col_index): (DragEvent, usize, usize)| {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_col_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:155:31
[INFO] [stdout]     |
[INFO] [stdout] 155 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:155:42
[INFO] [stdout]     |
[INFO] [stdout] 155 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:101:30
[INFO] [stdout]     |
[INFO] [stdout] 101 |         Callback::from(move |e: TouchEvent| {
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:71:30
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Callback::from(move |e: TouchEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:64:49
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let handle_drag_over = Callback::from(move |e: DragEvent| {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_index`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:58:31
[INFO] [stdout]    |
[INFO] [stdout] 58 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_index`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:58:42
[INFO] [stdout]    |
[INFO] [stdout] 58 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let rows = rows.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let rows = rows.clone();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected_cell`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let selected_cell = selected_cell.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let rows = rows.clone();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/components/certificates/certificate.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let data = share_url.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_copied_message`
[INFO] [stdout]   --> src/components/certificates/certificate.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let show_copied_message = show_copied_message.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_copied_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/challenge_presence.rs:37:27
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn challenge_presence(props: &ChallengePresenceProps) -> Html {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/challenge_rating.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn challenge_rating(props: &ChallengeRatingProps) -> Html {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/challenge_review.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comment`
[INFO] [stdout]   --> src/components/challenge_review.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let comment = comment.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_sending`
[INFO] [stdout]   --> src/components/challenge_review.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let is_sending = is_sending.clone();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_sending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_sent`
[INFO] [stdout]   --> src/components/challenge_review.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let is_sent = is_sent.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_sent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/components/challenge_review.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let error = error.clone();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stars`
[INFO] [stdout]   --> src/components/challenge_review.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let stars = stars.clone();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stars`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comment`
[INFO] [stdout]   --> src/components/challenge_review.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let comment = comment.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge_id`
[INFO] [stdout]   --> src/components/challenge_review.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let challenge_id = props.challenge_id.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]   --> src/components/challenge_review.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let api_url = props.api_url.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_endpoint`
[INFO] [stdout]   --> src/components/challenge_review.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let default_endpoint = props.default_endpoint;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_endpoint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/domain_selector.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Callback::from(move |e: Event| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `domains`
[INFO] [stdout]   --> src/components/domain_selector.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let domains = props.domains.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_domains`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_domain_change`
[INFO] [stdout]   --> src/components/domain_selector.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let on_domain_change = props.on_domain_change.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_domain_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/gdrive_backup.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn gdrive_backup(props: &GDriveBackupProps) -> Html {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `choice_index`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |         Callback::from(move |(choice_index, option_index): (usize, usize)| {
[INFO] [stdout]     |                               ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_choice_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `option_index`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:115:45
[INFO] [stdout]     |
[INFO] [stdout] 115 |         Callback::from(move |(choice_index, option_index): (usize, usize)| {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_option_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selections`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let selections = selections.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let challenge = props.challenge.clone();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/leaderboard.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn leaderboard_comp(props: &LeaderboardProps) -> Html {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge_result`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let challenge_result = challenge_result.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_index`
[INFO] [stdout]    --> src/components/challenge/contextual_choice.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let item_index = item_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/map/map.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 |         Callback::from(move |e: TouchEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dragging`
[INFO] [stdout]   --> src/components/map/map.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let is_dragging = is_dragging.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dragging`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_touch_pos`
[INFO] [stdout]   --> src/components/map/map.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let last_touch_pos = last_touch_pos.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_touch_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/components/map/map.rs:238:26
[INFO] [stdout]     |
[INFO] [stdout] 238 |     Callback::from(move |e: TouchEvent| {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bounds`
[INFO] [stdout]    --> src/components/map/map.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 |     bounds: (SvgCoordinate, SvgCoordinate),
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bounds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_size`
[INFO] [stdout]    --> src/components/map/map.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 230 |     display_size: (u32, u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dragging`
[INFO] [stdout]    --> src/components/map/map.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |     let is_dragging = is_dragging.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dragging`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_touch_pos`
[INFO] [stdout]    --> src/components/map/map.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let last_touch_pos = last_touch_pos.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_touch_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `view_box_position`
[INFO] [stdout]    --> src/components/map/map.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |     let view_box_position = view_box_position.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_view_box_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zoom_level`
[INFO] [stdout]    --> src/components/map/map.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     let zoom_level = zoom_level.clone();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_zoom_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `view_box`
[INFO] [stdout]    --> src/components/map/map.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |     let view_box = view_box.clone();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_view_box`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bounds`
[INFO] [stdout]   --> src/components/map/svg_map.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let bounds = props.game_path.get_bounds();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bounds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `html_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let html_content = html_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_html_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `css_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let css_content = css_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_css_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `js_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let js_content = js_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_js_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i18n_content`
[INFO] [stdout]   --> src/components/challenge/custom.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let i18n_content = i18n_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_i18n_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loading`
[INFO] [stdout]   --> src/components/challenge/custom.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let loading = loading.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/components/challenge/custom.rs:150:28
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub async fn fetch_content(path: &str, handle: UseStateHandle<String>) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/components/challenge/custom.rs:150:40
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub async fn fetch_content(path: &str, handle: UseStateHandle<String>) {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/components/challenge/custom.rs:161:25
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub async fn fetch_file(path: &str) -> Result<String, String> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/challenge/custom_package.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn custom_package_component(props: &CustomPackageComponentProps) -> Html {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `html_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let html_content = html_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_html_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `css_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let css_content = css_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_css_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `js_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let js_content = js_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_js_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i18n_content`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let i18n_content = i18n_content.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_i18n_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let challenge = props.challenge.clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loading`
[INFO] [stdout]   --> src/components/challenge/custom_result.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let loading = loading.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/music.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let settings = use_settings();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let name = name.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let name = name.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profile`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let profile = profile.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profile_repository`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let profile_repository = profile_repository.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile_repository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/profile/profile_points.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |         Callback::from(move |e: MouseEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded`
[INFO] [stdout]   --> src/components/profile/profile_points.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let expanded = expanded.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_loader`
[INFO] [stdout]   --> src/components/challenge/informative_markdown.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let asset_loader = use_state(AssetLoader::default);
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_loader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `markdown_path`
[INFO] [stdout]   --> src/components/challenge/informative_markdown.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let markdown_path = match informative_text {
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_markdown_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]    --> src/components/seo.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn seo(props: &SeoProps) -> Html {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/music_config.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_change`
[INFO] [stdout]   --> src/components/settings/music_config.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let on_change = props.on_change.clone();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/settings/music_config.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let settings = props.settings.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/select_language.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 |         Callback::from(move |e: Event| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected_language`
[INFO] [stdout]   --> src/components/settings/select_language.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let selected_language = selected_language.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_language`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/settings/select_language.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let settings = settings.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/select_level.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Callback::from(move |e: Event| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_select`
[INFO] [stdout]   --> src/components/settings/select_level.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let on_select = props.on_select.clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_select`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/sound_config.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_change`
[INFO] [stdout]   --> src/components/settings/sound_config.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let on_change = props.on_change.clone();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/settings/sound_config.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let settings = props.settings.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_copied_message`
[INFO] [stdout]   --> src/components/share_page.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let show_copied_message = show_copied_message.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_copied_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `share_url`
[INFO] [stdout]   --> src/components/share_page.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let share_url = share_url.clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_share_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:292:30
[INFO] [stdout]     |
[INFO] [stdout] 292 |         Callback::from(move |event: TouchEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:268:30
[INFO] [stdout]     |
[INFO] [stdout] 268 |         Callback::from(move |event: TouchEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:239:30
[INFO] [stdout]     |
[INFO] [stdout] 239 |         Callback::from(move |event: DragEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:205:30
[INFO] [stdout]     |
[INFO] [stdout] 205 |         Callback::from(move |event: DragEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 |         Callback::from(move |event: DragEvent| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:161:30
[INFO] [stdout]     |
[INFO] [stdout] 161 |         Callback::from(move |index: usize| {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let selected_index = selected_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_order`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let current_order = current_order.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_order`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let current_order = current_order.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_order`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let current_order = current_order.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:325:13
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let dragged_index = dragged_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `drop_target_index`
[INFO] [stdout]    --> src/components/challenge/ordering.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let drop_target_index = drop_target_index.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_drop_target_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/swipe.rs:68:49
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let ontouchstart = ctx.link().callback(|e: TouchEvent| {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/components/swipe.rs:183:28
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn rendered(&mut self, ctx: &Context<Self>, first_render: bool) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_render`
[INFO] [stdout]    --> src/components/swipe.rs:183:49
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn rendered(&mut self, ctx: &Context<Self>, first_render: bool) {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_render`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config_ctx`
[INFO] [stdout]    --> src/i18n/provider.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let config_ctx = config_ctx.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_config`
[INFO] [stdout]    --> src/i18n/provider.rs:293:13
[INFO] [stdout]     |
[INFO] [stdout] 293 |         let initial_config = initial_config.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:186:20
[INFO] [stdout]     |
[INFO] [stdout] 186 |             move |(e, target_row_index, target_col_index): (DragEvent, usize, usize)| {
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_row_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:186:23
[INFO] [stdout]     |
[INFO] [stdout] 186 |             move |(e, target_row_index, target_col_index): (DragEvent, usize, usize)| {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_row_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_col_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:186:41
[INFO] [stdout]     |
[INFO] [stdout] 186 |             move |(e, target_row_index, target_col_index): (DragEvent, usize, usize)| {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_col_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:155:31
[INFO] [stdout]     |
[INFO] [stdout] 155 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_index`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:155:42
[INFO] [stdout]     |
[INFO] [stdout] 155 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:101:30
[INFO] [stdout]     |
[INFO] [stdout] 101 |         Callback::from(move |e: TouchEvent| {
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:71:30
[INFO] [stdout]    |
[INFO] [stdout] 71 |         Callback::from(move |e: TouchEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:64:49
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let handle_drag_over = Callback::from(move |e: DragEvent| {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_index`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:58:31
[INFO] [stdout]    |
[INFO] [stdout] 58 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_index`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:58:42
[INFO] [stdout]    |
[INFO] [stdout] 58 |         Callback::from(move |(row_index, col_index): (usize, usize)| {
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]   --> src/components/challenge/sort_table.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let rows = rows.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let rows = rows.clone();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected_cell`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let selected_cell = selected_cell.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let rows = rows.clone();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dragged_cell`
[INFO] [stdout]    --> src/components/challenge/sort_table.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let dragged_cell = dragged_cell.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dragged_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/i18n/mod.rs:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn log_language_info(context: &str) {
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/challenge_presence.rs:37:27
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn challenge_presence(props: &ChallengePresenceProps) -> Html {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/challenge_rating.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn challenge_rating(props: &ChallengeRatingProps) -> Html {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/challenge_review.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comment`
[INFO] [stdout]   --> src/components/challenge_review.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let comment = comment.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_sending`
[INFO] [stdout]   --> src/components/challenge_review.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let is_sending = is_sending.clone();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_sending`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_sent`
[INFO] [stdout]   --> src/components/challenge_review.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let is_sent = is_sent.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_sent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/components/challenge_review.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let error = error.clone();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stars`
[INFO] [stdout]   --> src/components/challenge_review.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let stars = stars.clone();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_stars`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comment`
[INFO] [stdout]   --> src/components/challenge_review.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let comment = comment.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `challenge_id`
[INFO] [stdout]   --> src/components/challenge_review.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let challenge_id = props.challenge_id.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_challenge_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]   --> src/components/challenge_review.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let api_url = props.api_url.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_endpoint`
[INFO] [stdout]   --> src/components/challenge_review.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let default_endpoint = props.default_endpoint;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_endpoint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/domain_selector.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Callback::from(move |e: Event| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `domains`
[INFO] [stdout]   --> src/components/domain_selector.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let domains = props.domains.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_domains`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_domain_change`
[INFO] [stdout]   --> src/components/domain_selector.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let on_domain_change = props.on_domain_change.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_domain_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/gdrive_backup.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn gdrive_backup(props: &GDriveBackupProps) -> Html {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/effects/read_text.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn read_text(props: &ReadTextProps) -> Html {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/components/leaderboard.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn leaderboard_comp(props: &LeaderboardProps) -> Html {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/map/map.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 |         Callback::from(move |e: TouchEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dragging`
[INFO] [stdout]   --> src/components/map/map.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let is_dragging = is_dragging.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dragging`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_touch_pos`
[INFO] [stdout]   --> src/components/map/map.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let last_touch_pos = last_touch_pos.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_touch_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/components/map/map.rs:238:26
[INFO] [stdout]     |
[INFO] [stdout] 238 |     Callback::from(move |e: TouchEvent| {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bounds`
[INFO] [stdout]    --> src/components/map/map.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 |     bounds: (SvgCoordinate, SvgCoordinate),
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bounds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_size`
[INFO] [stdout]    --> src/components/map/map.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 230 |     display_size: (u32, u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dragging`
[INFO] [stdout]    --> src/components/map/map.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 232 |     let is_dragging = is_dragging.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dragging`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_touch_pos`
[INFO] [stdout]    --> src/components/map/map.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let last_touch_pos = last_touch_pos.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_touch_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `view_box_position`
[INFO] [stdout]    --> src/components/map/map.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |     let view_box_position = view_box_position.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_view_box_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zoom_level`
[INFO] [stdout]    --> src/components/map/map.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |     let zoom_level = zoom_level.clone();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_zoom_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `view_box`
[INFO] [stdout]    --> src/components/map/map.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |     let view_box = view_box.clone();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_view_box`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/repository/game_state_persistence_impl.rs:36:31
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn save_game_state(&self, state: &GameState) -> Result<()> {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bounds`
[INFO] [stdout]   --> src/components/map/svg_map.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let bounds = props.game_path.get_bounds();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bounds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/music.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let settings = use_settings();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/repository/local_storage.rs:69:57
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn set<T: Serialize + Sync>(&self, key: &str, value: &T) -> Result<(), StorageError> {
[INFO] [stdout]    |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let name = name.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let name = name.clone();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profile`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let profile = profile.clone();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profile_repository`
[INFO] [stdout]   --> src/components/profile/profile_config.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let profile_repository = profile_repository.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile_repository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/profile/profile_points.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |         Callback::from(move |e: MouseEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded`
[INFO] [stdout]   --> src/components/profile/profile_points.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let expanded = expanded.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]    --> src/components/seo.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn seo(props: &SeoProps) -> Html {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/music_config.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_change`
[INFO] [stdout]   --> src/components/settings/music_config.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let on_change = props.on_change.clone();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/settings/music_config.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let settings = props.settings.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/select_language.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 |         Callback::from(move |e: Event| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected_language`
[INFO] [stdout]   --> src/components/settings/select_language.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let selected_language = selected_language.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_language`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/settings/select_language.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let settings = settings.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/select_level.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Callback::from(move |e: Event| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_select`
[INFO] [stdout]   --> src/components/settings/select_level.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let on_select = props.on_select.clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_select`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/settings/sound_config.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Callback::from(move |e: InputEvent| {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_change`
[INFO] [stdout]   --> src/components/settings/sound_config.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let on_change = props.on_change.clone();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/components/settings/sound_config.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let settings = props.settings.clone();
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_markdown_with_loader` is never used
[INFO] [stdout]    --> src/components/challenge/informative_markdown.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | async fn fetch_markdown_with_loader(loader: &AssetLoader, path: &str) -> Result<String, 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: struct `ChallengePresenceStats` is never constructed
[INFO] [stdout]   --> src/components/challenge_presence.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ChallengePresenceStats {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_presence_url` is never used
[INFO] [stdout]   --> src/components/challenge_presence.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn build_presence_url(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_rating_url` is never used
[INFO] [stdout]   --> src/components/challenge_rating.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn build_rating_url(api_url: &str, challenge_id: &str, default_endpoint: bool) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_review_url` is never used
[INFO] [stdout]   --> src/components/challenge_review.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn build_review_url(api_url: &str, default_endpoint: bool) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Zoom` is never used
[INFO] [stdout]  --> src/components/map/utils.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait Zoom {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate_address` is never used
[INFO] [stdout]  --> src/components/marketplace/wallet/wallet.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn truncate_address(address: &str, show_full: bool) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INBOX_FILE` is never used
[INFO] [stdout]  --> src/providers/inbox_provider.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const INBOX_FILE: &str = "/assets/inbox.yml";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_challenge_in_history` is never used
[INFO] [stdout]   --> src/repository/game_state_persistence_impl.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl GameStatePersistenceImpl {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn is_challenge_in_history(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `prefixed_key` is never used
[INFO] [stdout]   --> src/repository/local_storage.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl LocalStorage {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn prefixed_key(&self, key: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_copied_message`
[INFO] [stdout]   --> src/components/share_page.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let show_copied_message = show_copied_message.clone();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_copied_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `share_url`
[INFO] [stdout]   --> src/components/share_page.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let share_url = share_url.clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_share_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/components/swipe.rs:68:49
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let ontouchstart = ctx.link().callback(|e: TouchEvent| {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/components/swipe.rs:183:28
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn rendered(&mut self, ctx: &Context<Self>, first_render: bool) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_render`
[INFO] [stdout]    --> src/components/swipe.rs:183:49
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn rendered(&mut self, ctx: &Context<Self>, first_render: bool) {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_render`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `en_obj`
[INFO] [stdout]    --> src/i18n/config.rs:316:13
[INFO] [stdout]     |
[INFO] [stdout] 316 |         let en_obj = en_translations.as_object().expect("Should be an object");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_en_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config_ctx`
[INFO] [stdout]    --> src/i18n/provider.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let config_ctx = config_ctx.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_config`
[INFO] [stdout]    --> src/i18n/provider.rs:293:13
[INFO] [stdout]     |
[INFO] [stdout] 293 |         let initial_config = initial_config.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/i18n/mod.rs:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn log_language_info(context: &str) {
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `props`
[INFO] [stdout]   --> src/effects/read_text.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn read_text(props: &ReadTextProps) -> Html {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_props`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/repository/game_state_persistence_impl.rs:36:31
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn save_game_state(&self, state: &GameState) -> Result<()> {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `brace_level` is assigned to, but never used
[INFO] [stdout]    --> tests/style_completeness.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut brace_level = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_brace_level` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `brace_level` is never read
[INFO] [stdout]    --> tests/style_completeness.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |         brace_level += trimmed.matches('{').count() as i32;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 135 |         brace_level -= trimmed.matches('}').count() as i32;
[INFO] [stdout]     |         -------------------------------------------------- `brace_level` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `brace_level` is never read
[INFO] [stdout]    --> tests/style_completeness.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         brace_level -= trimmed.matches('}').count() as i32;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/repository/local_storage.rs:69:57
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn set<T: Serialize + Sync>(&self, key: &str, value: &T) -> Result<(), StorageError> {
[INFO] [stdout]    |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_markdown_with_loader` is never used
[INFO] [stdout]    --> src/components/challenge/informative_markdown.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | async fn fetch_markdown_with_loader(loader: &AssetLoader, path: &str) -> Result<String, 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: struct `ChallengePresenceStats` is never constructed
[INFO] [stdout]   --> src/components/challenge_presence.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ChallengePresenceStats {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_presence_url` is never used
[INFO] [stdout]   --> src/components/challenge_presence.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn build_presence_url(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_rating_url` is never used
[INFO] [stdout]   --> src/components/challenge_rating.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn build_rating_url(api_url: &str, challenge_id: &str, default_endpoint: bool) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_review_url` is never used
[INFO] [stdout]   --> src/components/challenge_review.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn build_review_url(api_url: &str, default_endpoint: bool) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate_address` is never used
[INFO] [stdout]  --> src/components/marketplace/wallet/wallet.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn truncate_address(address: &str, show_full: bool) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INBOX_FILE` is never used
[INFO] [stdout]  --> src/providers/inbox_provider.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const INBOX_FILE: &str = "/assets/inbox.yml";
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_challenge_in_history` is never used
[INFO] [stdout]   --> src/repository/game_state_persistence_impl.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl GameStatePersistenceImpl {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn is_challenge_in_history(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `prefixed_key` is never used
[INFO] [stdout]   --> src/repository/local_storage.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl LocalStorage {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn prefixed_key(&self, key: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestStruct` is never constructed
[INFO] [stdout]   --> src/repository/local_storage.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 |     struct TestStruct {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 57s
[INFO] running `Command { std: "docker" "inspect" "71d6cc2c8d90b41e755441e5b938919733ddef73b66aac6bdec3e4ef2f52b7d2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71d6cc2c8d90b41e755441e5b938919733ddef73b66aac6bdec3e4ef2f52b7d2", kill_on_drop: false }`
[INFO] [stdout] 71d6cc2c8d90b41e755441e5b938919733ddef73b66aac6bdec3e4ef2f52b7d2
