[INFO] cloning repository https://github.com/mayiwen/yueduqi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mayiwen/yueduqi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmayiwen%2Fyueduqi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmayiwen%2Fyueduqi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ec8b2ad5f33fb5b5cdba091196e66eb4cbea8550
[INFO] testing mayiwen/yueduqi against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmayiwen%2Fyueduqi" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mayiwen/yueduqi
[INFO] finished tweaking git repo https://github.com/mayiwen/yueduqi
[INFO] tweaked toml for git repo https://github.com/mayiwen/yueduqi written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mayiwen/yueduqi on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mayiwen/yueduqi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8
[INFO] running `Command { std: "docker" "start" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling thiserror v2.0.14
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling dioxus-core-types v0.7.1
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling longest-increasing-subsequence v0.1.0
[INFO] [stderr]    Compiling lazy-js-bundle v0.7.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling bitflags v2.9.2
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling dioxus-document v0.7.1
[INFO] [stderr]    Compiling dioxus-interpreter-js v0.7.1
[INFO] [stderr]    Compiling keyboard-types v0.7.0
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling sledgehammer_utils v0.3.1
[INFO] [stderr]    Compiling dioxus-web v0.7.1
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling send_wrapper v0.6.0
[INFO] [stderr]    Compiling dioxus-config-macros v0.7.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling dioxus-config-macro v0.7.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling memmap2 v0.9.7
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling const_format v0.2.34
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling regex-automata v0.4.11
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.100
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling dioxus-rsx v0.7.1
[INFO] [stderr]    Compiling regex v1.11.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v2.0.14
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling warnings-macro v0.2.0
[INFO] [stderr]    Compiling const-serialize-macro v0.7.1
[INFO] [stderr]    Compiling dioxus-html-internal-macro v0.7.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling sledgehammer_bindgen_macro v0.6.1
[INFO] [stderr]    Compiling dioxus-stores-macro v0.7.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling dioxus-core-macro v0.7.1
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.100
[INFO] [stderr]    Compiling warnings v0.2.1
[INFO] [stderr]    Compiling generational-box v0.7.1
[INFO] [stderr]    Compiling tungstenite v0.27.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling enumset_derive v0.12.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.100
[INFO] [stderr]    Compiling wasm-bindgen v0.2.100
[INFO] [stderr]    Compiling enumset v1.1.7
[INFO] [stderr]    Compiling js-sys v0.3.77
[INFO] [stderr]    Compiling dioxus-cli-config v0.7.1
[INFO] [stderr]    Compiling sledgehammer_bindgen v0.6.0
[INFO] [stderr]    Compiling const-serialize v0.7.1
[INFO] [stderr]    Compiling dioxus-logger v0.7.1
[INFO] [stderr]    Compiling subsecond-types v0.7.1
[INFO] [stderr]    Compiling book_models v0.1.0 (/opt/rustwide/workdir/book_models)
[INFO] [stderr]    Compiling subsecond v0.7.1
[INFO] [stderr]    Compiling manganis-core v0.7.1
[INFO] [stderr]    Compiling manganis-macro v0.7.1
[INFO] [stderr]    Compiling dioxus-core v0.7.1
[INFO] [stderr]    Compiling manganis v0.7.1
[INFO] [stderr]    Compiling web-sys v0.3.77
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.50
[INFO] [stderr]    Compiling gloo-timers v0.3.0
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling dioxus-signals v0.7.1
[INFO] [stderr]    Compiling dioxus-devtools-types v0.7.1
[INFO] [stderr]    Compiling dioxus-history v0.7.1
[INFO] [stderr]    Compiling dioxus-hooks v0.7.1
[INFO] [stderr]    Compiling dioxus-devtools v0.7.1
[INFO] [stderr]    Compiling dioxus-stores v0.7.1
[INFO] [stderr]    Compiling dioxus-html v0.7.1
[INFO] [stderr]    Compiling dioxus-asset-resolver v0.7.1
[INFO] [stderr]    Compiling gloo-events v0.2.0
[INFO] [stderr]    Compiling wasm-streams v0.4.2
[INFO] [stderr]    Compiling dioxus v0.7.1
[INFO] [stderr]    Compiling yueduqi-ui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Book` and `ChangeLocalBook`
[INFO] [stdout]  --> src/book/book_read_setting/mod.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 |     book::models::{Book, ChangeLocalBook},
[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: `Font`, `ResCom`, `YiwenReadOutput`, and `convert_to_fonts`
[INFO] [stdout]  --> src/book/book_read_setting/mod.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use book_models::{self, convert_to_fonts, BookChapterData, Font, ResCom, YiwenReadOutput};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^                   ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `div`, `font`, and `line_height`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         div,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 11 |         u::{font, line_height},
[INFO] [stdout]    |             ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gloo_events::EventListener`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use gloo_events::EventListener;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gloo_timers::callback::Timeout`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use gloo_timers::callback::Timeout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JsCast`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | use wasm_bindgen::{JsCast, JsValue};
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `base64::encode`
[INFO] [stdout]  --> src/book/book_read_setting/theme.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use base64::encode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |     use std::fs::File;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 260 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `RefCell`, `fmt::format`, `future::pending`, and `thread::sleep`
[INFO] [stdout]  --> src/myw/mod.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     cell::{Cell, RefCell},
[INFO] [stdout]   |            ^^^^  ^^^^^^^
[INFO] [stdout] 6 |     fmt::format,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 7 |     future::pending,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     rc::Rc,
[INFO] [stdout] 9 |     thread::sleep,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsCast`, `console`, `js_sys`, `prelude::Closure`, and `window`
[INFO] [stdout]   --> src/myw/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     console, js_sys,
[INFO] [stdout]    |     ^^^^^^^  ^^^^^^
[INFO] [stdout] 13 |     wasm_bindgen::{prelude::Closure, JsCast},
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 14 |     window,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::JsValue`
[INFO] [stdout]  --> src/util/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wasm_bindgen::JsValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::window`
[INFO] [stdout]  --> src/util/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::window;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]  --> src/book/book_list/mod.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn I(is_book_list: ReadOnlySignal<bool>, book_click: EventHandler<Book>) -> Element {
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]   --> src/book/book_read.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 |     is_book_list: ReadOnlySignal<bool>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]   --> src/book/book_read.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     select_book: ReadOnlySignal<crate::book::models::Book>,
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |     select_book: ReadOnlySignal<crate::book::models::Book>,
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]  --> src/book/book_read_setting/chapter.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |     book_chapter_vec: ReadOnlySignal<Vec<book_models::BookChapter>>,
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]  --> src/book/book_read_setting/theme.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use base64::encode;
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut super_message_signal: Signal<Vec<myw::MessageItem>> = use_signal(|| vec![]);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/app.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |             onmounted: move |data: Event<MountedData>| {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/app.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 if let Some(body) = document.body() {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/book/book_list/add/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut messages = consume_context::<Signal<Vec<myw::MessageItem>>>();
[INFO] [stdout]   |         ----^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_list/mod.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vec = vec![];
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/book/book_list/mod.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `border` is never read
[INFO] [stdout]    --> src/book/book_list/mod.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut border = "".to_string();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 140 |         border = "border: 1px solid var(--myw-border);".to_string()
[INFO] [stdout]     |         ------ `border` 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: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut element = use_signal(|| None::<Rc<MountedData>>);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut element_size = use_signal(|| (0.0, 0.0));
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut element_size = element_size.to_owned(); // 改为 mut
[INFO] [stdout]    |             ----^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/book/book_read.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     Err(e) => {}
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut border_style = use_memo(move || {
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut back_style = use_memo(move || {
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:99:30
[INFO] [stdout]    |
[INFO] [stdout] 99 |             onmounted: move |data: Event<MountedData>| {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `border_style` is never read
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:75:28
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut border_style = "".to_string();
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 85 |         border_style = "border: 1px solid var(--myw-border);".to_string();
[INFO] [stdout]    |         ------------ `border_style` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bg_tran` is never read
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let mut bg_tran = "".to_string();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 88 |     bg_tran = "background-color: transparent;".to_string();
[INFO] [stdout]    |     ------- `bg_tran` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bol`
[INFO] [stdout]   --> src/book/mod.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let resize_change = move |bol: bool| {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_rerender_count`
[INFO] [stdout]   --> src/book/mod.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let current_rerender_count = force_rerender();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_rerender_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mayiwen.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |               onmounted: move |data: Event<MountedData>| {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:159:26
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 163 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:186:26
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 190 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:213:26
[INFO] [stdout]     |
[INFO] [stdout] 213 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 217 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 263 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 286 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:287:26
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 291 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let mut font_color = use_memo(move || {
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/mod.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut messages = consume_context::<Signal<Vec<MessageItem>>>();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/myw/mod.rs:257:37
[INFO] [stdout]     |
[INFO] [stdout] 257 |                         if let Some(first) = msgs.first() {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/myw/mod.rs:265:41
[INFO] [stdout]     |
[INFO] [stdout] 265 | ...                   if let Some(first) = msgs.first() {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FontSize` is never constructed
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct FontSize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl FontSize {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(height: u64, size: u64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_to_base64` is never used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn file_to_base64<P: AsRef<Path>>(path: P) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/mod.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let _ = crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/mod.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let _ = crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_list/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         crate::util::storage::save_books(&book_vec.write());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let _ = crate::util::storage::save_books(&book_vec.write());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_list/mod.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             crate::util::storage::save_books(&books);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_list/mod.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             crate::util::storage::save_books(&books);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_list/mod.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |             crate::util::storage::save_books(&books);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `filePath` should have a snake case name
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     filePath: String,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/mod.rs:330:37
[INFO] [stdout]     |
[INFO] [stdout] 330 | / ...                   crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout] 331 | | ...                       "theme",
[INFO] [stdout] 332 | | ...                       if ret == 0 { 1 } else { 0 },
[INFO] [stdout] 333 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |                                     let _ = crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/mod.rs:277:37
[INFO] [stdout]     |
[INFO] [stdout] 277 | / ...                   crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout] 278 | | ...                       "font_size",
[INFO] [stdout] 279 | | ...                       selected_value(),
[INFO] [stdout] 280 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 277 |                                     let _ = crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:81:33
[INFO] [stdout]    |
[INFO] [stdout] 81 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 82 | | ...                       "bgi",
[INFO] [stdout] 83 | | ...                       data_url.clone(),
[INFO] [stdout] 84 | | ...                   );
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]    |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:85:33
[INFO] [stdout]    |
[INFO] [stdout] 85 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 86 | | ...                       "bg",
[INFO] [stdout] 87 | | ...                       "#000".to_string(),
[INFO] [stdout] 88 | | ...                   );
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 85 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]    |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:244:25
[INFO] [stdout]     |
[INFO] [stdout] 244 |                         crate::util::storage::save_to_local_storage_string("bg","".to_string(),);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 244 |                         let _ = crate::util::storage::save_to_local_storage_string("bg","".to_string(),);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:245:25
[INFO] [stdout]     |
[INFO] [stdout] 245 |                         crate::util::storage::save_to_local_storage_string("bgi","".to_string(),);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 245 |                         let _ = crate::util::storage::save_to_local_storage_string("bgi","".to_string(),);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:246:25
[INFO] [stdout]     |
[INFO] [stdout] 246 |                         crate::util::storage::save_to_local_storage_string("color","".to_string(),);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 246 |                         let _ = crate::util::storage::save_to_local_storage_string("color","".to_string(),);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 126 | | ...                       "color",
[INFO] [stdout] 127 | | ...                       event.value().clone(),
[INFO] [stdout] 128 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |                             let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:147:33
[INFO] [stdout]     |
[INFO] [stdout] 147 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 148 | | ...                       "color",
[INFO] [stdout] 149 | | ...                       event.value().clone(),
[INFO] [stdout] 150 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:170:29
[INFO] [stdout]     |
[INFO] [stdout] 170 | ...                   crate::util::storage::save_to_local_storage_string("bg", event.value().clone());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 170 |                             let _ = crate::util::storage::save_to_local_storage_string("bg", event.value().clone());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:173:29
[INFO] [stdout]     |
[INFO] [stdout] 173 | ...                   crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 173 |                             let _ = crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:192:33
[INFO] [stdout]     |
[INFO] [stdout] 192 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 193 | | ...                       "bg",
[INFO] [stdout] 194 | | ...                       event.value().clone(),
[INFO] [stdout] 195 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 192 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:198:33
[INFO] [stdout]     |
[INFO] [stdout] 198 | ...                   crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 198 |                                 let _ = crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/myw/mod.rs:307:1
[INFO] [stdout]     |
[INFO] [stdout] 307 | #[component]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout]     = note: this warning originates in the attribute macro `component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling yueduqi-ui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Book` and `ChangeLocalBook`
[INFO] [stdout]  --> src/book/book_read_setting/mod.rs:4:20
[INFO] [stdout]   |
[INFO] [stdout] 4 |     book::models::{Book, ChangeLocalBook},
[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: `Font`, `ResCom`, `YiwenReadOutput`, and `convert_to_fonts`
[INFO] [stdout]  --> src/book/book_read_setting/mod.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use book_models::{self, convert_to_fonts, BookChapterData, Font, ResCom, YiwenReadOutput};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^                   ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `div`, `font`, and `line_height`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         div,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 11 |         u::{font, line_height},
[INFO] [stdout]    |             ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gloo_events::EventListener`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use gloo_events::EventListener;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gloo_timers::callback::Timeout`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use gloo_timers::callback::Timeout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JsCast`
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | use wasm_bindgen::{JsCast, JsValue};
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `base64::encode`
[INFO] [stdout]  --> src/book/book_read_setting/theme.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use base64::encode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |     use std::fs::File;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 260 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `RefCell`, `fmt::format`, `future::pending`, and `thread::sleep`
[INFO] [stdout]  --> src/myw/mod.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     cell::{Cell, RefCell},
[INFO] [stdout]   |            ^^^^  ^^^^^^^
[INFO] [stdout] 6 |     fmt::format,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 7 |     future::pending,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     rc::Rc,
[INFO] [stdout] 9 |     thread::sleep,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsCast`, `console`, `js_sys`, `prelude::Closure`, and `window`
[INFO] [stdout]   --> src/myw/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     console, js_sys,
[INFO] [stdout]    |     ^^^^^^^  ^^^^^^
[INFO] [stdout] 13 |     wasm_bindgen::{prelude::Closure, JsCast},
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 14 |     window,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::JsValue`
[INFO] [stdout]  --> src/util/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wasm_bindgen::JsValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::window`
[INFO] [stdout]  --> src/util/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::window;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]  --> src/book/book_list/mod.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn I(is_book_list: ReadOnlySignal<bool>, book_click: EventHandler<Book>) -> Element {
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]   --> src/book/book_read.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 |     is_book_list: ReadOnlySignal<bool>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]   --> src/book/book_read.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     select_book: ReadOnlySignal<crate::book::models::Book>,
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |     select_book: ReadOnlySignal<crate::book::models::Book>,
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stdout]  --> src/book/book_read_setting/chapter.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |     book_chapter_vec: ReadOnlySignal<Vec<book_models::BookChapter>>,
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]  --> src/book/book_read_setting/theme.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use base64::encode;
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut super_message_signal: Signal<Vec<myw::MessageItem>> = use_signal(|| vec![]);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/app.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |             onmounted: move |data: Event<MountedData>| {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]   --> src/app.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 if let Some(body) = document.body() {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/book/book_list/add/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut messages = consume_context::<Signal<Vec<myw::MessageItem>>>();
[INFO] [stdout]   |         ----^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_list/mod.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut vec = vec![];
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/book/book_list/mod.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `border` is never read
[INFO] [stdout]    --> src/book/book_list/mod.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut border = "".to_string();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 140 |         border = "border: 1px solid var(--myw-border);".to_string()
[INFO] [stdout]     |         ------ `border` 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: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut element = use_signal(|| None::<Rc<MountedData>>);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut element_size = use_signal(|| (0.0, 0.0));
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut element_size = element_size.to_owned(); // 改为 mut
[INFO] [stdout]    |             ----^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/book/book_read.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     Err(e) => {}
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut border_style = use_memo(move || {
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut back_style = use_memo(move || {
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:99:30
[INFO] [stdout]    |
[INFO] [stdout] 99 |             onmounted: move |data: Event<MountedData>| {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `border_style` is never read
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:75:28
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut border_style = "".to_string();
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 85 |         border_style = "border: 1px solid var(--myw-border);".to_string();
[INFO] [stdout]    |         ------------ `border_style` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bg_tran` is never read
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let mut bg_tran = "".to_string();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 88 |     bg_tran = "background-color: transparent;".to_string();
[INFO] [stdout]    |     ------- `bg_tran` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bol`
[INFO] [stdout]   --> src/book/mod.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let resize_change = move |bol: bool| {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_rerender_count`
[INFO] [stdout]   --> src/book/mod.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let current_rerender_count = force_rerender();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_rerender_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mayiwen.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |               onmounted: move |data: Event<MountedData>| {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:159:26
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 163 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:186:26
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 190 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:213:26
[INFO] [stdout]     |
[INFO] [stdout] 213 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 217 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 263 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/icon/mod.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 286 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `font_color` is never read
[INFO] [stdout]    --> src/myw/icon/mod.rs:287:26
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let mut font_color = "".to_string();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 291 |         font_color = "var(--myw-color)".to_string()
[INFO] [stdout]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/myw/mod.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let mut font_color = use_memo(move || {
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/myw/mod.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut messages = consume_context::<Signal<Vec<MessageItem>>>();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/myw/mod.rs:257:37
[INFO] [stdout]     |
[INFO] [stdout] 257 |                         if let Some(first) = msgs.first() {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/myw/mod.rs:265:41
[INFO] [stdout]     |
[INFO] [stdout] 265 | ...                   if let Some(first) = msgs.first() {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FontSize` is never constructed
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct FontSize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl FontSize {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(height: u64, size: u64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_to_base64` is never used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn file_to_base64<P: AsRef<Path>>(path: P) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/mod.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let _ = crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/mod.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let _ = crate::util::storage::save_books(&vec);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_list/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         crate::util::storage::save_books(&book_vec.write());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let _ = crate::util::storage::save_books(&book_vec.write());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_list/mod.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             crate::util::storage::save_books(&books);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_list/mod.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             crate::util::storage::save_books(&books);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_list/mod.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |             crate::util::storage::save_books(&books);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `filePath` should have a snake case name
[INFO] [stdout]   --> src/book/book_read_setting/mod.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     filePath: String,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/mod.rs:330:37
[INFO] [stdout]     |
[INFO] [stdout] 330 | / ...                   crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout] 331 | | ...                       "theme",
[INFO] [stdout] 332 | | ...                       if ret == 0 { 1 } else { 0 },
[INFO] [stdout] 333 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |                                     let _ = crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/mod.rs:277:37
[INFO] [stdout]     |
[INFO] [stdout] 277 | / ...                   crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout] 278 | | ...                       "font_size",
[INFO] [stdout] 279 | | ...                       selected_value(),
[INFO] [stdout] 280 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 277 |                                     let _ = crate::util::storage::save_to_local_storage_u64(
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:81:33
[INFO] [stdout]    |
[INFO] [stdout] 81 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 82 | | ...                       "bgi",
[INFO] [stdout] 83 | | ...                       data_url.clone(),
[INFO] [stdout] 84 | | ...                   );
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]    |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/book/book_read_setting/theme.rs:85:33
[INFO] [stdout]    |
[INFO] [stdout] 85 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 86 | | ...                       "bg",
[INFO] [stdout] 87 | | ...                       "#000".to_string(),
[INFO] [stdout] 88 | | ...                   );
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 85 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]    |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:244:25
[INFO] [stdout]     |
[INFO] [stdout] 244 |                         crate::util::storage::save_to_local_storage_string("bg","".to_string(),);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 244 |                         let _ = crate::util::storage::save_to_local_storage_string("bg","".to_string(),);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:245:25
[INFO] [stdout]     |
[INFO] [stdout] 245 |                         crate::util::storage::save_to_local_storage_string("bgi","".to_string(),);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 245 |                         let _ = crate::util::storage::save_to_local_storage_string("bgi","".to_string(),);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:246:25
[INFO] [stdout]     |
[INFO] [stdout] 246 |                         crate::util::storage::save_to_local_storage_string("color","".to_string(),);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 246 |                         let _ = crate::util::storage::save_to_local_storage_string("color","".to_string(),);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:125:29
[INFO] [stdout]     |
[INFO] [stdout] 125 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 126 | | ...                       "color",
[INFO] [stdout] 127 | | ...                       event.value().clone(),
[INFO] [stdout] 128 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |                             let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:147:33
[INFO] [stdout]     |
[INFO] [stdout] 147 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 148 | | ...                       "color",
[INFO] [stdout] 149 | | ...                       event.value().clone(),
[INFO] [stdout] 150 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:170:29
[INFO] [stdout]     |
[INFO] [stdout] 170 | ...                   crate::util::storage::save_to_local_storage_string("bg", event.value().clone());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 170 |                             let _ = crate::util::storage::save_to_local_storage_string("bg", event.value().clone());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:173:29
[INFO] [stdout]     |
[INFO] [stdout] 173 | ...                   crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 173 |                             let _ = crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:192:33
[INFO] [stdout]     |
[INFO] [stdout] 192 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stdout] 193 | | ...                       "bg",
[INFO] [stdout] 194 | | ...                       event.value().clone(),
[INFO] [stdout] 195 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 192 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/book/book_read_setting/theme.rs:198:33
[INFO] [stdout]     |
[INFO] [stdout] 198 | ...                   crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 198 |                                 let _ = crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/myw/mod.rs:307:1
[INFO] [stdout]     |
[INFO] [stdout] 307 | #[component]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout]     = note: this warning originates in the attribute macro `component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2.52s
[INFO] running `Command { std: "docker" "inspect" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Book` and `ChangeLocalBook`
[INFO] [stderr]  --> src/book/book_read_setting/mod.rs:4:20
[INFO] [stderr]   |
[INFO] [stderr] 4 |     book::models::{Book, ChangeLocalBook},
[INFO] [stderr]   |                    ^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Font`, `ResCom`, `YiwenReadOutput`, and `convert_to_fonts`
[INFO] [stderr]  --> src/book/book_read_setting/mod.rs:7:25
[INFO] [stderr]   |
[INFO] [stderr] 7 | use book_models::{self, convert_to_fonts, BookChapterData, Font, ResCom, YiwenReadOutput};
[INFO] [stderr]   |                         ^^^^^^^^^^^^^^^^                   ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `div`, `font`, and `line_height`
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |         div,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 11 |         u::{font, line_height},
[INFO] [stderr]    |             ^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gloo_events::EventListener`
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use gloo_events::EventListener;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gloo_timers::callback::Timeout`
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use gloo_timers::callback::Timeout;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Value`
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use serde_json::Value;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | use std::{cell::RefCell, rc::Rc};
[INFO] [stderr]    |           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `JsCast`
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:20:20
[INFO] [stderr]    |
[INFO] [stderr] 20 | use wasm_bindgen::{JsCast, JsValue};
[INFO] [stderr]    |                    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `base64::encode`
[INFO] [stderr]  --> src/book/book_read_setting/theme.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use base64::encode;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:258:9
[INFO] [stderr]     |
[INFO] [stderr] 258 |     use std::fs::File;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:260:9
[INFO] [stderr]     |
[INFO] [stderr] 260 |     use std::path::Path;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Cell`, `RefCell`, `fmt::format`, `future::pending`, and `thread::sleep`
[INFO] [stderr]  --> src/myw/mod.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 |     cell::{Cell, RefCell},
[INFO] [stderr]   |            ^^^^  ^^^^^^^
[INFO] [stderr] 6 |     fmt::format,
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 7 |     future::pending,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 8 |     rc::Rc,
[INFO] [stderr] 9 |     thread::sleep,
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `JsCast`, `console`, `js_sys`, `prelude::Closure`, and `window`
[INFO] [stderr]   --> src/myw/mod.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     console, js_sys,
[INFO] [stderr]    |     ^^^^^^^  ^^^^^^
[INFO] [stderr] 13 |     wasm_bindgen::{prelude::Closure, JsCast},
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 14 |     window,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wasm_bindgen::JsValue`
[INFO] [stderr]  --> src/util/mod.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use wasm_bindgen::JsValue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `web_sys::window`
[INFO] [stderr]  --> src/util/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use web_sys::window;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stderr]  --> src/book/book_list/mod.rs:9:24
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn I(is_book_list: ReadOnlySignal<bool>, book_click: EventHandler<Book>) -> Element {
[INFO] [stderr]   |                        ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stderr]   --> src/book/book_read.rs:12:19
[INFO] [stderr]    |
[INFO] [stderr] 12 |     is_book_list: ReadOnlySignal<bool>,
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stderr]   --> src/book/book_read.rs:15:18
[INFO] [stderr]    |
[INFO] [stderr] 15 |     select_book: ReadOnlySignal<crate::book::models::Book>,
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:51:18
[INFO] [stderr]    |
[INFO] [stderr] 51 |     select_book: ReadOnlySignal<crate::book::models::Book>,
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `dioxus::prelude::ReadOnlySignal`: Use `ReadSignal` instead. Will be removed in 0.8
[INFO] [stderr]  --> src/book/book_read_setting/chapter.rs:6:23
[INFO] [stderr]   |
[INFO] [stderr] 6 |     book_chapter_vec: ReadOnlySignal<Vec<book_models::BookChapter>>,
[INFO] [stderr]   |                       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stderr]  --> src/book/book_read_setting/theme.rs:3:13
[INFO] [stderr]   |
[INFO] [stderr] 3 | use base64::encode;
[INFO] [stderr]   |             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/app.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 |     let mut super_message_signal: Signal<Vec<myw::MessageItem>> = use_signal(|| vec![]);
[INFO] [stderr]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]    --> src/app.rs:120:30
[INFO] [stderr]     |
[INFO] [stderr] 120 |             onmounted: move |data: Event<MountedData>| {
[INFO] [stderr]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]   --> src/app.rs:93:29
[INFO] [stderr]    |
[INFO] [stderr] 93 |                 if let Some(body) = document.body() {
[INFO] [stderr]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/book/book_list/add/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut messages = consume_context::<Signal<Vec<myw::MessageItem>>>();
[INFO] [stderr]   |         ----^^^^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_list/mod.rs:27:13
[INFO] [stderr]    |
[INFO] [stderr] 27 |         let mut vec = vec![];
[INFO] [stderr]    |             ----^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/book/book_list/mod.rs:135:9
[INFO] [stderr]     |
[INFO] [stderr] 135 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `border` is never read
[INFO] [stderr]    --> src/book/book_list/mod.rs:136:22
[INFO] [stderr]     |
[INFO] [stderr] 136 |     let mut border = "".to_string();
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 140 |         border = "border: 1px solid var(--myw-border);".to_string()
[INFO] [stderr]     |         ------ `border` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |     let mut element = use_signal(|| None::<Rc<MountedData>>);
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let mut element_size = use_signal(|| (0.0, 0.0));
[INFO] [stderr]    |         ----^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read.rs:55:13
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let mut element_size = element_size.to_owned(); // 改为 mut
[INFO] [stderr]    |             ----^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/book/book_read.rs:121:25
[INFO] [stderr]     |
[INFO] [stderr] 121 |                     Err(e) => {}
[INFO] [stderr]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stderr]    |         ----^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let mut border_style = use_memo(move || {
[INFO] [stderr]    |         ----^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |     let mut back_style = use_memo(move || {
[INFO] [stderr]    |         ----^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:99:30
[INFO] [stderr]    |
[INFO] [stderr] 99 |             onmounted: move |data: Event<MountedData>| {
[INFO] [stderr]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:73:9
[INFO] [stderr]    |
[INFO] [stderr] 73 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stderr]    |         ----^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `border_style` is never read
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:75:28
[INFO] [stderr]    |
[INFO] [stderr] 75 |     let mut border_style = "".to_string();
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 85 |         border_style = "border: 1px solid var(--myw-border);".to_string();
[INFO] [stderr]    |         ------------ `border_style` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `bg_tran` is never read
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:76:23
[INFO] [stderr]    |
[INFO] [stderr] 76 |     let mut bg_tran = "".to_string();
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 88 |     bg_tran = "background-color: transparent;".to_string();
[INFO] [stderr]    |     ------- `bg_tran` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bol`
[INFO] [stderr]   --> src/book/mod.rs:41:31
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let resize_change = move |bol: bool| {
[INFO] [stderr]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `current_rerender_count`
[INFO] [stderr]   --> src/book/mod.rs:87:9
[INFO] [stderr]    |
[INFO] [stderr] 87 |     let current_rerender_count = force_rerender();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_rerender_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]   --> src/mayiwen.rs:23:32
[INFO] [stderr]    |
[INFO] [stderr] 23 |               onmounted: move |data: Event<MountedData>| {
[INFO] [stderr]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/myw/icon/mod.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `font_color` is never read
[INFO] [stderr]    --> src/myw/icon/mod.rs:159:26
[INFO] [stderr]     |
[INFO] [stderr] 159 |     let mut font_color = "".to_string();
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 163 |         font_color = "var(--myw-color)".to_string()
[INFO] [stderr]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/myw/icon/mod.rs:185:9
[INFO] [stderr]     |
[INFO] [stderr] 185 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `font_color` is never read
[INFO] [stderr]    --> src/myw/icon/mod.rs:186:26
[INFO] [stderr]     |
[INFO] [stderr] 186 |     let mut font_color = "".to_string();
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 190 |         font_color = "var(--myw-color)".to_string()
[INFO] [stderr]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/myw/icon/mod.rs:212:9
[INFO] [stderr]     |
[INFO] [stderr] 212 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `font_color` is never read
[INFO] [stderr]    --> src/myw/icon/mod.rs:213:26
[INFO] [stderr]     |
[INFO] [stderr] 213 |     let mut font_color = "".to_string();
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 217 |         font_color = "var(--myw-color)".to_string()
[INFO] [stderr]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/myw/icon/mod.rs:258:9
[INFO] [stderr]     |
[INFO] [stderr] 258 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `font_color` is never read
[INFO] [stderr]    --> src/myw/icon/mod.rs:259:26
[INFO] [stderr]     |
[INFO] [stderr] 259 |     let mut font_color = "".to_string();
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 263 |         font_color = "var(--myw-color)".to_string()
[INFO] [stderr]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/myw/icon/mod.rs:286:9
[INFO] [stderr]     |
[INFO] [stderr] 286 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `font_color` is never read
[INFO] [stderr]    --> src/myw/icon/mod.rs:287:26
[INFO] [stderr]     |
[INFO] [stderr] 287 |     let mut font_color = "".to_string();
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 291 |         font_color = "var(--myw-color)".to_string()
[INFO] [stderr]     |         ---------- `font_color` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/myw/mod.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let mut color = consume_context::<Signal<Color>>();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/myw/mod.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 43 |     let mut bg = consume_context::<Signal<Background>>();
[INFO] [stderr]    |         ----^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/myw/mod.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let mut bgi = consume_context::<Signal<BackgroundColor>>();
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/myw/mod.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 62 |     let mut font_color = use_memo(move || {
[INFO] [stderr]    |         ----^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/myw/mod.rs:249:9
[INFO] [stderr]     |
[INFO] [stderr] 249 |     let mut messages = consume_context::<Signal<Vec<MessageItem>>>();
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `first`
[INFO] [stderr]    --> src/myw/mod.rs:257:37
[INFO] [stderr]     |
[INFO] [stderr] 257 |                         if let Some(first) = msgs.first() {
[INFO] [stderr]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `first`
[INFO] [stderr]    --> src/myw/mod.rs:265:41
[INFO] [stderr]     |
[INFO] [stderr] 265 | ...                   if let Some(first) = msgs.first() {
[INFO] [stderr]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FontSize` is never constructed
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | struct FontSize {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | impl FontSize {
[INFO] [stderr]    | ------------- associated function in this implementation
[INFO] [stderr] 29 |     fn new(height: u64, size: u64) -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `file_to_base64` is never used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:257:4
[INFO] [stderr]     |
[INFO] [stderr] 257 | fn file_to_base64<P: AsRef<Path>>(path: P) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/mod.rs:68:9
[INFO] [stderr]    |
[INFO] [stderr] 68 |         crate::util::storage::save_books(&vec);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 68 |         let _ = crate::util::storage::save_books(&vec);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/mod.rs:84:9
[INFO] [stderr]    |
[INFO] [stderr] 84 |         crate::util::storage::save_books(&vec);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 84 |         let _ = crate::util::storage::save_books(&vec);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/book_list/mod.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |         crate::util::storage::save_books(&book_vec.write());
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 51 |         let _ = crate::util::storage::save_books(&book_vec.write());
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/book_list/mod.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |             crate::util::storage::save_books(&books);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 60 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/book_list/mod.rs:76:13
[INFO] [stderr]    |
[INFO] [stderr] 76 |             crate::util::storage::save_books(&books);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 76 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_list/mod.rs:102:13
[INFO] [stderr]     |
[INFO] [stderr] 102 |             crate::util::storage::save_books(&books);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 102 |             let _ = crate::util::storage::save_books(&books);
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `filePath` should have a snake case name
[INFO] [stderr]   --> src/book/book_read_setting/mod.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 |     filePath: String,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/mod.rs:330:37
[INFO] [stderr]     |
[INFO] [stderr] 330 | / ...                   crate::util::storage::save_to_local_storage_u64(
[INFO] [stderr] 331 | | ...                       "theme",
[INFO] [stderr] 332 | | ...                       if ret == 0 { 1 } else { 0 },
[INFO] [stderr] 333 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 330 |                                     let _ = crate::util::storage::save_to_local_storage_u64(
[INFO] [stderr]     |                                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/mod.rs:277:37
[INFO] [stderr]     |
[INFO] [stderr] 277 | / ...                   crate::util::storage::save_to_local_storage_u64(
[INFO] [stderr] 278 | | ...                       "font_size",
[INFO] [stderr] 279 | | ...                       selected_value(),
[INFO] [stderr] 280 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 277 |                                     let _ = crate::util::storage::save_to_local_storage_u64(
[INFO] [stderr]     |                                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:81:33
[INFO] [stderr]    |
[INFO] [stderr] 81 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stderr] 82 | | ...                       "bgi",
[INFO] [stderr] 83 | | ...                       data_url.clone(),
[INFO] [stderr] 84 | | ...                   );
[INFO] [stderr]    | |_______________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 81 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stderr]    |                                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/book/book_read_setting/theme.rs:85:33
[INFO] [stderr]    |
[INFO] [stderr] 85 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stderr] 86 | | ...                       "bg",
[INFO] [stderr] 87 | | ...                       "#000".to_string(),
[INFO] [stderr] 88 | | ...                   );
[INFO] [stderr]    | |_______________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 85 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stderr]    |                                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:244:25
[INFO] [stderr]     |
[INFO] [stderr] 244 |                         crate::util::storage::save_to_local_storage_string("bg","".to_string(),);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 244 |                         let _ = crate::util::storage::save_to_local_storage_string("bg","".to_string(),);
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:245:25
[INFO] [stderr]     |
[INFO] [stderr] 245 |                         crate::util::storage::save_to_local_storage_string("bgi","".to_string(),);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 245 |                         let _ = crate::util::storage::save_to_local_storage_string("bgi","".to_string(),);
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:246:25
[INFO] [stderr]     |
[INFO] [stderr] 246 |                         crate::util::storage::save_to_local_storage_string("color","".to_string(),);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 246 |                         let _ = crate::util::storage::save_to_local_storage_string("color","".to_string(),);
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:125:29
[INFO] [stderr]     |
[INFO] [stderr] 125 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stderr] 126 | | ...                       "color",
[INFO] [stderr] 127 | | ...                       event.value().clone(),
[INFO] [stderr] 128 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 125 |                             let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:147:33
[INFO] [stderr]     |
[INFO] [stderr] 147 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stderr] 148 | | ...                       "color",
[INFO] [stderr] 149 | | ...                       event.value().clone(),
[INFO] [stderr] 150 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 147 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stderr]     |                                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:170:29
[INFO] [stderr]     |
[INFO] [stderr] 170 | ...                   crate::util::storage::save_to_local_storage_string("bg", event.value().clone());
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 170 |                             let _ = crate::util::storage::save_to_local_storage_string("bg", event.value().clone());
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:173:29
[INFO] [stderr]     |
[INFO] [stderr] 173 | ...                   crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 173 |                             let _ = crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:192:33
[INFO] [stderr]     |
[INFO] [stderr] 192 | / ...                   crate::util::storage::save_to_local_storage_string(
[INFO] [stderr] 193 | | ...                       "bg",
[INFO] [stderr] 194 | | ...                       event.value().clone(),
[INFO] [stderr] 195 | | ...                   );
[INFO] [stderr]     | |_______________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 192 |                                 let _ = crate::util::storage::save_to_local_storage_string(
[INFO] [stderr]     |                                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/book/book_read_setting/theme.rs:198:33
[INFO] [stderr]     |
[INFO] [stderr] 198 | ...                   crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 198 |                                 let _ = crate::util::storage::save_to_local_storage_string("bgi", "".to_string());
[INFO] [stderr]     |                                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]    --> src/myw/mod.rs:307:1
[INFO] [stderr]     |
[INFO] [stderr] 307 | #[component]
[INFO] [stderr]     | ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: the address of the same function can vary between different codegen units
[INFO] [stderr]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr]     = note: this warning originates in the attribute macro `component` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `yueduqi-ui` (bin "yueduqi-ui" test) generated 87 warnings (run `cargo fix --bin "yueduqi-ui" -p yueduqi-ui --tests` to apply 49 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/yueduqi_ui-17fa58064583a381)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8", kill_on_drop: false }`
[INFO] [stdout] 1eadd43320e0128c6ecf68e8a3d3a56b6bc3746351c55a1540a1d704eb4787b8
