[INFO] cloning repository https://github.com/Zanderwohl/chores [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zanderwohl/chores" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZanderwohl%2Fchores", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZanderwohl%2Fchores'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2e110b970944a6a4f0067824af7c6dd22981274b [INFO] checking Zanderwohl/chores against master#53509ca37e3b507887607c2f4a7f23bd4838f099 for pr-156027 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZanderwohl%2Fchores" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Zanderwohl/chores [INFO] finished tweaking git repo https://github.com/Zanderwohl/chores [INFO] tweaked toml for git repo https://github.com/Zanderwohl/chores written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Zanderwohl/chores on toolchain 53509ca37e3b507887607c2f4a7f23bd4838f099 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+53509ca37e3b507887607c2f4a7f23bd4838f099" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Zanderwohl/chores 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" "+53509ca37e3b507887607c2f4a7f23bd4838f099" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/allan2/dotenvy.git` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded redox_syscall v0.6.0 [INFO] [stderr] Downloaded libredox v0.1.11 [INFO] [stderr] Downloaded tracing-appender v0.2.5 [INFO] [stderr] Downloaded hypertext-macros v0.12.1 [INFO] [stderr] Downloaded hypertext v0.12.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53509ca37e3b507887607c2f4a7f23bd4838f099" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 52736aee14ebf545e232e1eb43c518129d1f4325d08d7ecb04c6b518afe0723b [INFO] running `Command { std: "docker" "start" "-a" "52736aee14ebf545e232e1eb43c518129d1f4325d08d7ecb04c6b518afe0723b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "52736aee14ebf545e232e1eb43c518129d1f4325d08d7ecb04c6b518afe0723b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "52736aee14ebf545e232e1eb43c518129d1f4325d08d7ecb04c6b518afe0723b", kill_on_drop: false }` [INFO] [stdout] 52736aee14ebf545e232e1eb43c518129d1f4325d08d7ecb04c6b518afe0723b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53509ca37e3b507887607c2f4a7f23bd4838f099" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b518e9b7be9d0b5d317450f92a2465992164ab16b804df586eca62599f62f277 [INFO] running `Command { std: "docker" "start" "-a" "b518e9b7be9d0b5d317450f92a2465992164ab16b804df586eca62599f62f277", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking tracing v0.1.43 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling zerocopy-derive v0.8.31 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling tracing-core v0.1.35 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Checking as-slice v0.2.1 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Compiling built v0.8.1 [INFO] [stderr] Checking tokio v1.48.0 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Checking aligned v0.4.3 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking rayon v1.12.0 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling profiling-procmacros v1.0.18 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Checking no_std_io2 v0.9.4 [INFO] [stderr] Checking profiling v1.0.18 [INFO] [stderr] Checking bitstream-io v4.10.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking imgref v1.12.1 [INFO] [stderr] Compiling utf8-width v0.1.8 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking phf_shared v0.12.1 [INFO] [stderr] Compiling html-escape v0.2.13 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking avif-serialize v0.8.9 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Checking fax v0.2.7 [INFO] [stderr] Checking num-conv v0.2.2 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking winnow v0.7.14 [INFO] [stderr] Checking rgb v0.8.53 [INFO] [stderr] Checking pxfm v0.1.29 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking gif v0.14.2 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking av-scenechange v0.14.1 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking tiff v0.11.3 [INFO] [stderr] Checking exr v1.74.0 [INFO] [stderr] Checking multer v3.1.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking tracing-subscriber v0.3.23 [INFO] [stderr] Checking av1-grain v0.2.5 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Compiling hypertext-macros v0.12.1 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking phf v0.12.1 [INFO] [stderr] Checking axum-core v0.5.5 [INFO] [stderr] Checking serde_path_to_error v0.1.20 [INFO] [stderr] Checking mutate_once v0.1.2 [INFO] [stderr] Checking symlink v0.1.0 [INFO] [stderr] Checking kamadak-exif v0.5.5 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking rand v0.9.4 [INFO] [stderr] Checking tracing-appender v0.2.5 [INFO] [stderr] Checking dotenvy v0.15.7 (https://github.com/allan2/dotenvy.git?branch=main#86c0d6dd) [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tokio-util v0.7.17 [INFO] [stderr] Checking hypertext v0.12.1 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking sqlx-core v0.8.6 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Checking axum v0.8.7 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking ravif v0.13.0 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Compiling sqlx-sqlite v0.8.6 [INFO] [stderr] Compiling sqlx-macros-core v0.8.6 [INFO] [stderr] Compiling sqlx-macros v0.8.6 [INFO] [stderr] Checking sqlx v0.8.6 [INFO] [stderr] Checking chores v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_timezone` is never used [INFO] [stdout] --> src/config.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_timezone() -> Tz { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Person` is never constructed [INFO] [stdout] --> src/db.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Person { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_people` is never used [INFO] [stdout] --> src/db.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn get_all_people(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/db.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn add_person(pool: &DbPool, initials: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/db.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | pub async fn delete_person(pool: &DbPool, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | pub async fn add_completion(pool: &DbPool, task_id: &str, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result, Option)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/db.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbSchedule` is never constructed [INFO] [stdout] --> src/db.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/db.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct DbTask { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 166 | pub id: i64, [INFO] [stdout] | ^^ [INFO] [stdout] 167 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 168 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 169 | pub schedule_id: i64, [INFO] [stdout] 170 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 171 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 172 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 173 | pub deleted_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DbTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_int_list` is never used [INFO] [stdout] --> src/db.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_schedule_parts` is never used [INFO] [stdout] --> src/db.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 202 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task` is never used [INFO] [stdout] --> src/db.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_tasks` is never used [INFO] [stdout] --> src/db.rs:313:14 [INFO] [stdout] | [INFO] [stdout] 313 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_count` is never used [INFO] [stdout] --> src/db.rs:358:14 [INFO] [stdout] | [INFO] [stdout] 358 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tasks_paginated` is never used [INFO] [stdout] --> src/db.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn get_tasks_paginated( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_task_deleted_at` is never used [INFO] [stdout] --> src/db.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ScheduleKind { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | Once, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScheduleKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active` is never used [INFO] [stdout] --> src/schedule.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl DaysOfWeek { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 75 | pub fn active(&self, day: Weekday) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Settings` is never constructed [INFO] [stdout] --> src/settings.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Settings { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tag_str` is never used [INFO] [stdout] --> src/settings.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn parse_tag_str(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `parsed_tags` is never used [INFO] [stdout] --> src/settings.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parsed_tags(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/settings.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn is_touch_mode(headers: &HeaderMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_settings` is never used [INFO] [stdout] --> src/settings.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn read_settings(headers: &HeaderMap) -> Settings { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cookie_header` is never used [INFO] [stdout] --> src/settings.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn set_cookie_header(settings: &Settings) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SettingsForm` is never constructed [INFO] [stdout] --> src/settings.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct SettingsForm { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `settings_page` is never used [INFO] [stdout] --> src/settings.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | pub async fn settings_page(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_settings` is never used [INFO] [stdout] --> src/settings.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | pub async fn save_settings( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_settings_page` is never used [INFO] [stdout] --> src/settings.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn render_settings_page(settings: &Settings, people: &[db::Person], error: Option<&str>) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AddPersonForm` is never constructed [INFO] [stdout] --> src/settings.rs:337:12 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct AddPersonForm { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/settings.rs:341:14 [INFO] [stdout] | [INFO] [stdout] 341 | pub async fn add_person( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/settings.rs:357:14 [INFO] [stdout] | [INFO] [stdout] 357 | pub async fn delete_person( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_day_range` is never used [INFO] [stdout] --> src/tasks.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn parse_day_range(input: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_day_range` is never used [INFO] [stdout] --> src/tasks.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn format_day_range(days: &[i32]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FormErrors` is never constructed [INFO] [stdout] --> src/tasks.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct FormErrors { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_errors` is never used [INFO] [stdout] --> src/tasks.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 138 | impl FormErrors { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 139 | pub fn has_errors(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_demo_tasks` is never used [INFO] [stdout] --> src/tasks.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_demo_id` is never used [INFO] [stdout] --> src/tasks.rs:269:4 [INFO] [stdout] | [INFO] [stdout] 269 | fn is_demo_id(id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `router` is never used [INFO] [stdout] --> src/tasks.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_picker` is never used [INFO] [stdout] --> src/tasks.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | async fn complete_picker(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompleteQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | pub struct CompleteQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 313 | async fn complete_task( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:330:10 [INFO] [stdout] | [INFO] [stdout] 330 | async fn delete_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:343:10 [INFO] [stdout] | [INFO] [stdout] 343 | async fn restore_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | async fn task_show(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:384:10 [INFO] [stdout] | [INFO] [stdout] 384 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | pub async fn homepage(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 589 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:596:14 [INFO] [stdout] | [INFO] [stdout] 596 | pub async fn daily_today( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page` is never used [INFO] [stdout] --> src/tasks.rs:614:14 [INFO] [stdout] | [INFO] [stdout] 614 | pub async fn daily_page( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:875:4 [INFO] [stdout] | [INFO] [stdout] 875 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CalendarQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:899:14 [INFO] [stdout] | [INFO] [stdout] 899 | pub async fn calendar_today( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page` is never used [INFO] [stdout] --> src/tasks.rs:916:14 [INFO] [stdout] | [INFO] [stdout] 916 | pub async fn calendar_page( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:925:10 [INFO] [stdout] | [INFO] [stdout] 925 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1194:4 [INFO] [stdout] | [INFO] [stdout] 1194 | fn render_task_card(task: &DemoTask, status: &str, is_touch: bool, completed_by: Option<&str>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1261:4 [INFO] [stdout] | [INFO] [stdout] 1261 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord], is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1466:4 [INFO] [stdout] | [INFO] [stdout] 1466 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_due_on_date` is never used [INFO] [stdout] --> src/tasks.rs:1611:4 [INFO] [stdout] | [INFO] [stdout] 1611 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_due_time` is never used [INFO] [stdout] --> src/tasks.rs:1671:4 [INFO] [stdout] | [INFO] [stdout] 1671 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_next_due_after` is never used [INFO] [stdout] --> src/tasks.rs:1685:4 [INFO] [stdout] | [INFO] [stdout] 1685 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_completions_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:4 [INFO] [stdout] | [INFO] [stdout] 1704 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:1747:12 [INFO] [stdout] | [INFO] [stdout] 1747 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1756:4 [INFO] [stdout] | [INFO] [stdout] 1756 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1760:4 [INFO] [stdout] | [INFO] [stdout] 1760 | fn default_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_per_page` is never used [INFO] [stdout] --> src/tasks.rs:1764:4 [INFO] [stdout] | [INFO] [stdout] 1764 | fn default_per_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_index` is never used [INFO] [stdout] --> src/tasks.rs:1769:10 [INFO] [stdout] | [INFO] [stdout] 1769 | async fn tasks_index(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1826:10 [INFO] [stdout] | [INFO] [stdout] 1826 | async fn tasks_list(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1832:10 [INFO] [stdout] | [INFO] [stdout] 1832 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit_modal` is never used [INFO] [stdout] --> src/tasks.rs:1854:10 [INFO] [stdout] | [INFO] [stdout] 1854 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaskForm` is never constructed [INFO] [stdout] --> src/tasks.rs:1877:12 [INFO] [stdout] | [INFO] [stdout] 1877 | pub struct TaskForm { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_demo_task` and `validate` are never used [INFO] [stdout] --> src/tasks.rs:1976:12 [INFO] [stdout] | [INFO] [stdout] 1975 | impl TaskForm { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 1976 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2158 | pub fn validate(&self) -> FormErrors { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/tasks.rs:2188:10 [INFO] [stdout] | [INFO] [stdout] 2188 | async fn save_task( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2248:10 [INFO] [stdout] | [INFO] [stdout] 2248 | async fn change_schedule_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2277:10 [INFO] [stdout] | [INFO] [stdout] 2277 | async fn new_task_modal() -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task` is never used [INFO] [stdout] --> src/tasks.rs:2283:10 [INFO] [stdout] | [INFO] [stdout] 2283 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2313:10 [INFO] [stdout] | [INFO] [stdout] 2313 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_default_task` is never used [INFO] [stdout] --> src/tasks.rs:2319:4 [INFO] [stdout] | [INFO] [stdout] 2319 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2359:12 [INFO] [stdout] | [INFO] [stdout] 2356 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2359 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2393 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2401 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2406 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2446 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2455 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2468 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2491 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_n_days` is never used [INFO] [stdout] --> src/tasks.rs:2519:8 [INFO] [stdout] | [INFO] [stdout] 2519 | pub fn default_n_days() -> NDays { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_n_weeks` is never used [INFO] [stdout] --> src/tasks.rs:2526:8 [INFO] [stdout] | [INFO] [stdout] 2526 | pub fn default_n_weeks() -> NWeeks { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_monthwise` is never used [INFO] [stdout] --> src/tasks.rs:2543:8 [INFO] [stdout] | [INFO] [stdout] 2543 | pub fn default_monthwise() -> Monthwise { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_weeks_of_month` is never used [INFO] [stdout] --> src/tasks.rs:2550:8 [INFO] [stdout] | [INFO] [stdout] 2550 | pub fn default_weeks_of_month() -> WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_certain_months` is never used [INFO] [stdout] --> src/tasks.rs:2566:8 [INFO] [stdout] | [INFO] [stdout] 2566 | pub fn default_certain_months() -> CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_once` is never used [INFO] [stdout] --> src/tasks.rs:2574:8 [INFO] [stdout] | [INFO] [stdout] 2574 | pub fn default_once() -> Once { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_sort_select` is never used [INFO] [stdout] --> src/tasks.rs:2584:4 [INFO] [stdout] | [INFO] [stdout] 2584 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_per_page_select` is never used [INFO] [stdout] --> src/tasks.rs:2596:4 [INFO] [stdout] | [INFO] [stdout] 2596 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list` is never used [INFO] [stdout] --> src/tasks.rs:2613:10 [INFO] [stdout] | [INFO] [stdout] 2613 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2662:4 [INFO] [stdout] | [INFO] [stdout] 2662 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list_item` is never used [INFO] [stdout] --> src/tasks.rs:2772:4 [INFO] [stdout] | [INFO] [stdout] 2772 | fn render_task_list_item(task: &DemoTask, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2806:4 [INFO] [stdout] | [INFO] [stdout] 2806 | fn html_escape(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2813:4 [INFO] [stdout] | [INFO] [stdout] 2813 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2825:4 [INFO] [stdout] | [INFO] [stdout] 2825 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2837:4 [INFO] [stdout] | [INFO] [stdout] 2837 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2849:4 [INFO] [stdout] | [INFO] [stdout] 2849 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor` is never used [INFO] [stdout] --> src/tasks.rs:2861:8 [INFO] [stdout] | [INFO] [stdout] 2861 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor_inner` is never used [INFO] [stdout] --> src/tasks.rs:2865:4 [INFO] [stdout] | [INFO] [stdout] 2865 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_schedule_type_select` is never used [INFO] [stdout] --> src/tasks.rs:3044:4 [INFO] [stdout] | [INFO] [stdout] 3044 | fn render_schedule_type_select( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_alerting_time_input` is never used [INFO] [stdout] --> src/tasks.rs:3074:4 [INFO] [stdout] | [INFO] [stdout] 3074 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_alerting_time` is never used [INFO] [stdout] --> src/tasks.rs:3126:4 [INFO] [stdout] | [INFO] [stdout] 3126 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_days_editor` is never used [INFO] [stdout] --> src/tasks.rs:3143:4 [INFO] [stdout] | [INFO] [stdout] 3143 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_weeks_editor` is never used [INFO] [stdout] --> src/tasks.rs:3176:4 [INFO] [stdout] | [INFO] [stdout] 3176 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_monthwise_editor` is never used [INFO] [stdout] --> src/tasks.rs:3288:4 [INFO] [stdout] | [INFO] [stdout] 3288 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_weeks_of_month_editor` is never used [INFO] [stdout] --> src/tasks.rs:3335:4 [INFO] [stdout] | [INFO] [stdout] 3335 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_certain_months_editor` is never used [INFO] [stdout] --> src/tasks.rs:3453:4 [INFO] [stdout] | [INFO] [stdout] 3453 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_once_editor` is never used [INFO] [stdout] --> src/tasks.rs:3533:4 [INFO] [stdout] | [INFO] [stdout] 3533 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `APP_TIMEZONE` is never used [INFO] [stdout] --> src/config.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | static APP_TIMEZONE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `TOUCH_MODE` is never used [INFO] [stdout] --> src/config.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | static TOUCH_MODE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_timezone` is never used [INFO] [stdout] --> src/config.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn init_timezone(tz_str: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_timezone` is never used [INFO] [stdout] --> src/config.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_timezone() -> Tz { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_touch_mode` is never used [INFO] [stdout] --> src/config.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn init_touch_mode(enabled: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Person` is never constructed [INFO] [stdout] --> src/db.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Person { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_people` is never used [INFO] [stdout] --> src/db.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn get_all_people(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/db.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn add_person(pool: &DbPool, initials: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/db.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | pub async fn delete_person(pool: &DbPool, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | pub async fn add_completion(pool: &DbPool, task_id: &str, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result, Option)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/db.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbSchedule` is never constructed [INFO] [stdout] --> src/db.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbTask` is never constructed [INFO] [stdout] --> src/db.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct DbTask { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_int_list` is never used [INFO] [stdout] --> src/db.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_schedule_parts` is never used [INFO] [stdout] --> src/db.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 202 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task` is never used [INFO] [stdout] --> src/db.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_tasks` is never used [INFO] [stdout] --> src/db.rs:313:14 [INFO] [stdout] | [INFO] [stdout] 313 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_count` is never used [INFO] [stdout] --> src/db.rs:358:14 [INFO] [stdout] | [INFO] [stdout] 358 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tasks_paginated` is never used [INFO] [stdout] --> src/db.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn get_tasks_paginated( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/db.rs:425:14 [INFO] [stdout] | [INFO] [stdout] 425 | pub async fn save_task(pool: &DbPool, task: &DemoTask) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_task_deleted_at` is never used [INFO] [stdout] --> src/db.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> src/schedule.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct NDays { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 22 | pub days: i32, [INFO] [stdout] 23 | pub time: NaiveTime, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NDays` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `offset` is never read [INFO] [stdout] --> src/schedule.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct NWeeks { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 31 | pub weeks: i32, [INFO] [stdout] 32 | pub offset: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NWeeks` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> src/schedule.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Monthwise { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 40 | pub days: Vec, [INFO] [stdout] 41 | pub time: NaiveTime, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Monthwise` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sub_schedule` is never read [INFO] [stdout] --> src/schedule.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct WeeksOfMonth { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 49 | pub weeks: Vec, [INFO] [stdout] 50 | pub sub_schedule: DaysOfWeek, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WeeksOfMonth` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> src/schedule.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct DaysOfWeek { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 71 | pub time: NaiveTime, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DaysOfWeek` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Settings` is never constructed [INFO] [stdout] --> src/settings.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Settings { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tag_str` is never used [INFO] [stdout] --> src/settings.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn parse_tag_str(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `parsed_tags` is never used [INFO] [stdout] --> src/settings.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parsed_tags(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/settings.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn is_touch_mode(headers: &HeaderMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_settings` is never used [INFO] [stdout] --> src/settings.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn read_settings(headers: &HeaderMap) -> Settings { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cookie_header` is never used [INFO] [stdout] --> src/settings.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn set_cookie_header(settings: &Settings) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SettingsForm` is never constructed [INFO] [stdout] --> src/settings.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct SettingsForm { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `settings_page` is never used [INFO] [stdout] --> src/settings.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | pub async fn settings_page(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_settings` is never used [INFO] [stdout] --> src/settings.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | pub async fn save_settings( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_settings_page` is never used [INFO] [stdout] --> src/settings.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn render_settings_page(settings: &Settings, people: &[db::Person], error: Option<&str>) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AddPersonForm` is never constructed [INFO] [stdout] --> src/settings.rs:337:12 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct AddPersonForm { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/settings.rs:341:14 [INFO] [stdout] | [INFO] [stdout] 341 | pub async fn add_person( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/settings.rs:357:14 [INFO] [stdout] | [INFO] [stdout] 357 | pub async fn delete_person( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_demo_tasks` is never used [INFO] [stdout] --> src/tasks.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_demo_id` is never used [INFO] [stdout] --> src/tasks.rs:269:4 [INFO] [stdout] | [INFO] [stdout] 269 | fn is_demo_id(id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `router` is never used [INFO] [stdout] --> src/tasks.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_picker` is never used [INFO] [stdout] --> src/tasks.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | async fn complete_picker(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompleteQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | pub struct CompleteQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 313 | async fn complete_task( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:330:10 [INFO] [stdout] | [INFO] [stdout] 330 | async fn delete_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:343:10 [INFO] [stdout] | [INFO] [stdout] 343 | async fn restore_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | async fn task_show(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:384:10 [INFO] [stdout] | [INFO] [stdout] 384 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | pub async fn homepage(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 589 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:596:14 [INFO] [stdout] | [INFO] [stdout] 596 | pub async fn daily_today( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page` is never used [INFO] [stdout] --> src/tasks.rs:614:14 [INFO] [stdout] | [INFO] [stdout] 614 | pub async fn daily_page( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:875:4 [INFO] [stdout] | [INFO] [stdout] 875 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CalendarQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:899:14 [INFO] [stdout] | [INFO] [stdout] 899 | pub async fn calendar_today( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page` is never used [INFO] [stdout] --> src/tasks.rs:916:14 [INFO] [stdout] | [INFO] [stdout] 916 | pub async fn calendar_page( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:925:10 [INFO] [stdout] | [INFO] [stdout] 925 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1194:4 [INFO] [stdout] | [INFO] [stdout] 1194 | fn render_task_card(task: &DemoTask, status: &str, is_touch: bool, completed_by: Option<&str>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1261:4 [INFO] [stdout] | [INFO] [stdout] 1261 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord], is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1466:4 [INFO] [stdout] | [INFO] [stdout] 1466 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_due_on_date` is never used [INFO] [stdout] --> src/tasks.rs:1611:4 [INFO] [stdout] | [INFO] [stdout] 1611 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_due_time` is never used [INFO] [stdout] --> src/tasks.rs:1671:4 [INFO] [stdout] | [INFO] [stdout] 1671 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_next_due_after` is never used [INFO] [stdout] --> src/tasks.rs:1685:4 [INFO] [stdout] | [INFO] [stdout] 1685 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_completions_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:4 [INFO] [stdout] | [INFO] [stdout] 1704 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:1747:12 [INFO] [stdout] | [INFO] [stdout] 1747 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1756:4 [INFO] [stdout] | [INFO] [stdout] 1756 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1760:4 [INFO] [stdout] | [INFO] [stdout] 1760 | fn default_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_per_page` is never used [INFO] [stdout] --> src/tasks.rs:1764:4 [INFO] [stdout] | [INFO] [stdout] 1764 | fn default_per_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_index` is never used [INFO] [stdout] --> src/tasks.rs:1769:10 [INFO] [stdout] | [INFO] [stdout] 1769 | async fn tasks_index(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1826:10 [INFO] [stdout] | [INFO] [stdout] 1826 | async fn tasks_list(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1832:10 [INFO] [stdout] | [INFO] [stdout] 1832 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit_modal` is never used [INFO] [stdout] --> src/tasks.rs:1854:10 [INFO] [stdout] | [INFO] [stdout] 1854 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/tasks.rs:1878:9 [INFO] [stdout] | [INFO] [stdout] 1877 | pub struct TaskForm { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 1878 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1879 | pub details: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1882 | pub n_days_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1883 | #[serde(default)] [INFO] [stdout] 1884 | pub n_days_time: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1885 | #[serde(default)] [INFO] [stdout] 1886 | pub n_weeks_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1887 | #[serde(default)] [INFO] [stdout] 1888 | pub n_weeks_offset: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1889 | #[serde(default)] [INFO] [stdout] 1890 | pub n_weeks_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1891 | #[serde(default)] [INFO] [stdout] 1892 | pub dow_sun: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1893 | #[serde(default)] [INFO] [stdout] 1894 | pub dow_mon: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1895 | #[serde(default)] [INFO] [stdout] 1896 | pub dow_tue: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1897 | #[serde(default)] [INFO] [stdout] 1898 | pub dow_wed: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1899 | #[serde(default)] [INFO] [stdout] 1900 | pub dow_thu: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1901 | #[serde(default)] [INFO] [stdout] 1902 | pub dow_fri: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1903 | #[serde(default)] [INFO] [stdout] 1904 | pub dow_sat: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1908 | pub monthwise_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1909 | #[serde(default)] [INFO] [stdout] 1910 | pub wom_week_1: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1911 | #[serde(default)] [INFO] [stdout] 1912 | pub wom_week_2: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1913 | #[serde(default)] [INFO] [stdout] 1914 | pub wom_week_3: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1915 | #[serde(default)] [INFO] [stdout] 1916 | pub wom_week_4: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1917 | #[serde(default)] [INFO] [stdout] 1918 | pub wom_week_5: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1919 | #[serde(default)] [INFO] [stdout] 1920 | pub wom_dow_sun: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1921 | #[serde(default)] [INFO] [stdout] 1922 | pub wom_dow_mon: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1923 | #[serde(default)] [INFO] [stdout] 1924 | pub wom_dow_tue: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1925 | #[serde(default)] [INFO] [stdout] 1926 | pub wom_dow_wed: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1927 | #[serde(default)] [INFO] [stdout] 1928 | pub wom_dow_thu: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1929 | #[serde(default)] [INFO] [stdout] 1930 | pub wom_dow_fri: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1931 | #[serde(default)] [INFO] [stdout] 1932 | pub wom_dow_sat: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1933 | #[serde(default)] [INFO] [stdout] 1934 | pub wom_time: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1935 | #[serde(default)] [INFO] [stdout] 1936 | pub cm_month_jan: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1937 | #[serde(default)] [INFO] [stdout] 1938 | pub cm_month_feb: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1939 | #[serde(default)] [INFO] [stdout] 1940 | pub cm_month_mar: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1941 | #[serde(default)] [INFO] [stdout] 1942 | pub cm_month_apr: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1943 | #[serde(default)] [INFO] [stdout] 1944 | pub cm_month_may: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1945 | #[serde(default)] [INFO] [stdout] 1946 | pub cm_month_jun: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1947 | #[serde(default)] [INFO] [stdout] 1948 | pub cm_month_jul: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1949 | #[serde(default)] [INFO] [stdout] 1950 | pub cm_month_aug: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1951 | #[serde(default)] [INFO] [stdout] 1952 | pub cm_month_sep: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1953 | #[serde(default)] [INFO] [stdout] 1954 | pub cm_month_oct: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1955 | #[serde(default)] [INFO] [stdout] 1956 | pub cm_month_nov: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1957 | #[serde(default)] [INFO] [stdout] 1958 | pub cm_month_dec: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1962 | pub cm_time: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1963 | #[serde(default)] [INFO] [stdout] 1964 | pub once_now: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1965 | #[serde(default)] [INFO] [stdout] 1966 | pub once_date: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1967 | #[serde(default)] [INFO] [stdout] 1968 | pub once_time: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1969 | #[serde(default)] [INFO] [stdout] 1970 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1971 | #[serde(default)] [INFO] [stdout] 1972 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TaskForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_demo_task` is never used [INFO] [stdout] --> src/tasks.rs:1976:12 [INFO] [stdout] | [INFO] [stdout] 1975 | impl TaskForm { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 1976 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/tasks.rs:2188:10 [INFO] [stdout] | [INFO] [stdout] 2188 | async fn save_task( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2248:10 [INFO] [stdout] | [INFO] [stdout] 2248 | async fn change_schedule_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2277:10 [INFO] [stdout] | [INFO] [stdout] 2277 | async fn new_task_modal() -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task` is never used [INFO] [stdout] --> src/tasks.rs:2283:10 [INFO] [stdout] | [INFO] [stdout] 2283 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2313:10 [INFO] [stdout] | [INFO] [stdout] 2313 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_default_task` is never used [INFO] [stdout] --> src/tasks.rs:2319:4 [INFO] [stdout] | [INFO] [stdout] 2319 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2339:12 [INFO] [stdout] | [INFO] [stdout] 2339 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2359:12 [INFO] [stdout] | [INFO] [stdout] 2356 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2359 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2393 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2401 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2406 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2446 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2455 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2468 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2491 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_certain_months` is never used [INFO] [stdout] --> src/tasks.rs:2566:8 [INFO] [stdout] | [INFO] [stdout] 2566 | pub fn default_certain_months() -> CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_once` is never used [INFO] [stdout] --> src/tasks.rs:2574:8 [INFO] [stdout] | [INFO] [stdout] 2574 | pub fn default_once() -> Once { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_sort_select` is never used [INFO] [stdout] --> src/tasks.rs:2584:4 [INFO] [stdout] | [INFO] [stdout] 2584 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_per_page_select` is never used [INFO] [stdout] --> src/tasks.rs:2596:4 [INFO] [stdout] | [INFO] [stdout] 2596 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list` is never used [INFO] [stdout] --> src/tasks.rs:2613:10 [INFO] [stdout] | [INFO] [stdout] 2613 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2662:4 [INFO] [stdout] | [INFO] [stdout] 2662 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list_item` is never used [INFO] [stdout] --> src/tasks.rs:2772:4 [INFO] [stdout] | [INFO] [stdout] 2772 | fn render_task_list_item(task: &DemoTask, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2806:4 [INFO] [stdout] | [INFO] [stdout] 2806 | fn html_escape(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2813:4 [INFO] [stdout] | [INFO] [stdout] 2813 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2825:4 [INFO] [stdout] | [INFO] [stdout] 2825 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2837:4 [INFO] [stdout] | [INFO] [stdout] 2837 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2849:4 [INFO] [stdout] | [INFO] [stdout] 2849 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor` is never used [INFO] [stdout] --> src/tasks.rs:2861:8 [INFO] [stdout] | [INFO] [stdout] 2861 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor_inner` is never used [INFO] [stdout] --> src/tasks.rs:2865:4 [INFO] [stdout] | [INFO] [stdout] 2865 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_schedule_type_select` is never used [INFO] [stdout] --> src/tasks.rs:3044:4 [INFO] [stdout] | [INFO] [stdout] 3044 | fn render_schedule_type_select( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_alerting_time_input` is never used [INFO] [stdout] --> src/tasks.rs:3074:4 [INFO] [stdout] | [INFO] [stdout] 3074 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_alerting_time` is never used [INFO] [stdout] --> src/tasks.rs:3126:4 [INFO] [stdout] | [INFO] [stdout] 3126 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_days_editor` is never used [INFO] [stdout] --> src/tasks.rs:3143:4 [INFO] [stdout] | [INFO] [stdout] 3143 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_weeks_editor` is never used [INFO] [stdout] --> src/tasks.rs:3176:4 [INFO] [stdout] | [INFO] [stdout] 3176 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_monthwise_editor` is never used [INFO] [stdout] --> src/tasks.rs:3288:4 [INFO] [stdout] | [INFO] [stdout] 3288 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_weeks_of_month_editor` is never used [INFO] [stdout] --> src/tasks.rs:3335:4 [INFO] [stdout] | [INFO] [stdout] 3335 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_certain_months_editor` is never used [INFO] [stdout] --> src/tasks.rs:3453:4 [INFO] [stdout] | [INFO] [stdout] 3453 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_once_editor` is never used [INFO] [stdout] --> src/tasks.rs:3533:4 [INFO] [stdout] | [INFO] [stdout] 3533 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `APP_TIMEZONE` is never used [INFO] [stdout] --> src/config.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | static APP_TIMEZONE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `TOUCH_MODE` is never used [INFO] [stdout] --> src/config.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | static TOUCH_MODE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_timezone` is never used [INFO] [stdout] --> src/config.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn init_timezone(tz_str: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_timezone` is never used [INFO] [stdout] --> src/config.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_timezone() -> Tz { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_touch_mode` is never used [INFO] [stdout] --> src/config.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn init_touch_mode(enabled: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Person` is never constructed [INFO] [stdout] --> src/db.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Person { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_people` is never used [INFO] [stdout] --> src/db.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn get_all_people(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/db.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn add_person(pool: &DbPool, initials: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/db.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | pub async fn delete_person(pool: &DbPool, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | pub async fn add_completion(pool: &DbPool, task_id: &str, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result, Option)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/db.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_int_list` is never used [INFO] [stdout] --> src/db.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_schedule_parts` is never used [INFO] [stdout] --> src/db.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 202 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task` is never used [INFO] [stdout] --> src/db.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_tasks` is never used [INFO] [stdout] --> src/db.rs:313:14 [INFO] [stdout] | [INFO] [stdout] 313 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_count` is never used [INFO] [stdout] --> src/db.rs:358:14 [INFO] [stdout] | [INFO] [stdout] 358 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tasks_paginated` is never used [INFO] [stdout] --> src/db.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn get_tasks_paginated( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/db.rs:425:14 [INFO] [stdout] | [INFO] [stdout] 425 | pub async fn save_task(pool: &DbPool, task: &DemoTask) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_task_deleted_at` is never used [INFO] [stdout] --> src/db.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDays` is never constructed [INFO] [stdout] --> src/schedule.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct NDays { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NWeeks` is never constructed [INFO] [stdout] --> src/schedule.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct NWeeks { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Monthwise` is never constructed [INFO] [stdout] --> src/schedule.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Monthwise { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WeeksOfMonth` is never constructed [INFO] [stdout] --> src/schedule.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DaysOfWeek` is never constructed [INFO] [stdout] --> src/schedule.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct DaysOfWeek { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active` is never used [INFO] [stdout] --> src/schedule.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl DaysOfWeek { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 75 | pub fn active(&self, day: Weekday) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Settings` is never constructed [INFO] [stdout] --> src/settings.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Settings { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tag_str` is never used [INFO] [stdout] --> src/settings.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn parse_tag_str(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `parsed_tags` is never used [INFO] [stdout] --> src/settings.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parsed_tags(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/settings.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn is_touch_mode(headers: &HeaderMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_settings` is never used [INFO] [stdout] --> src/settings.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn read_settings(headers: &HeaderMap) -> Settings { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cookie_header` is never used [INFO] [stdout] --> src/settings.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn set_cookie_header(settings: &Settings) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SettingsForm` is never constructed [INFO] [stdout] --> src/settings.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct SettingsForm { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `settings_page` is never used [INFO] [stdout] --> src/settings.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | pub async fn settings_page(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_settings` is never used [INFO] [stdout] --> src/settings.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | pub async fn save_settings( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_settings_page` is never used [INFO] [stdout] --> src/settings.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn render_settings_page(settings: &Settings, people: &[db::Person], error: Option<&str>) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AddPersonForm` is never constructed [INFO] [stdout] --> src/settings.rs:337:12 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct AddPersonForm { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/settings.rs:341:14 [INFO] [stdout] | [INFO] [stdout] 341 | pub async fn add_person( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/settings.rs:357:14 [INFO] [stdout] | [INFO] [stdout] 357 | pub async fn delete_person( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_day_range` is never used [INFO] [stdout] --> src/tasks.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn parse_day_range(input: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_day_range` is never used [INFO] [stdout] --> src/tasks.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn format_day_range(days: &[i32]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FormErrors` is never constructed [INFO] [stdout] --> src/tasks.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct FormErrors { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_errors` is never used [INFO] [stdout] --> src/tasks.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 138 | impl FormErrors { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 139 | pub fn has_errors(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_demo_tasks` is never used [INFO] [stdout] --> src/tasks.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_demo_id` is never used [INFO] [stdout] --> src/tasks.rs:269:4 [INFO] [stdout] | [INFO] [stdout] 269 | fn is_demo_id(id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `router` is never used [INFO] [stdout] --> src/tasks.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `APP_TIMEZONE` is never used [INFO] [stdout] --> src/config.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | static APP_TIMEZONE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `TOUCH_MODE` is never used [INFO] [stdout] --> src/config.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | static TOUCH_MODE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_picker` is never used [INFO] [stdout] --> src/tasks.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | async fn complete_picker(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompleteQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | pub struct CompleteQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 313 | async fn complete_task( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:330:10 [INFO] [stdout] | [INFO] [stdout] 330 | async fn delete_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_timezone` is never used [INFO] [stdout] --> src/config.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn init_timezone(tz_str: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:343:10 [INFO] [stdout] | [INFO] [stdout] 343 | async fn restore_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | async fn task_show(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_timezone` is never used [INFO] [stdout] --> src/config.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_timezone() -> Tz { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:384:10 [INFO] [stdout] | [INFO] [stdout] 384 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | pub async fn homepage(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_touch_mode` is never used [INFO] [stdout] --> src/config.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn init_touch_mode(enabled: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 589 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:596:14 [INFO] [stdout] | [INFO] [stdout] 596 | pub async fn daily_today( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page` is never used [INFO] [stdout] --> src/tasks.rs:614:14 [INFO] [stdout] | [INFO] [stdout] 614 | pub async fn daily_page( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:875:4 [INFO] [stdout] | [INFO] [stdout] 875 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CalendarQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Person` is never constructed [INFO] [stdout] --> src/db.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Person { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_people` is never used [INFO] [stdout] --> src/db.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn get_all_people(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/db.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn add_person(pool: &DbPool, initials: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/db.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | pub async fn delete_person(pool: &DbPool, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | pub async fn add_completion(pool: &DbPool, task_id: &str, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:899:14 [INFO] [stdout] | [INFO] [stdout] 899 | pub async fn calendar_today( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page` is never used [INFO] [stdout] --> src/tasks.rs:916:14 [INFO] [stdout] | [INFO] [stdout] 916 | pub async fn calendar_page( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:925:10 [INFO] [stdout] | [INFO] [stdout] 925 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1194:4 [INFO] [stdout] | [INFO] [stdout] 1194 | fn render_task_card(task: &DemoTask, status: &str, is_touch: bool, completed_by: Option<&str>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1261:4 [INFO] [stdout] | [INFO] [stdout] 1261 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord], is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1466:4 [INFO] [stdout] | [INFO] [stdout] 1466 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_due_on_date` is never used [INFO] [stdout] --> src/tasks.rs:1611:4 [INFO] [stdout] | [INFO] [stdout] 1611 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_due_time` is never used [INFO] [stdout] --> src/tasks.rs:1671:4 [INFO] [stdout] | [INFO] [stdout] 1671 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_next_due_after` is never used [INFO] [stdout] --> src/tasks.rs:1685:4 [INFO] [stdout] | [INFO] [stdout] 1685 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_completions_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:4 [INFO] [stdout] | [INFO] [stdout] 1704 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:1747:12 [INFO] [stdout] | [INFO] [stdout] 1747 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1756:4 [INFO] [stdout] | [INFO] [stdout] 1756 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1760:4 [INFO] [stdout] | [INFO] [stdout] 1760 | fn default_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_per_page` is never used [INFO] [stdout] --> src/tasks.rs:1764:4 [INFO] [stdout] | [INFO] [stdout] 1764 | fn default_per_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_index` is never used [INFO] [stdout] --> src/tasks.rs:1769:10 [INFO] [stdout] | [INFO] [stdout] 1769 | async fn tasks_index(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1826:10 [INFO] [stdout] | [INFO] [stdout] 1826 | async fn tasks_list(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1832:10 [INFO] [stdout] | [INFO] [stdout] 1832 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit_modal` is never used [INFO] [stdout] --> src/tasks.rs:1854:10 [INFO] [stdout] | [INFO] [stdout] 1854 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaskForm` is never constructed [INFO] [stdout] --> src/tasks.rs:1877:12 [INFO] [stdout] | [INFO] [stdout] 1877 | pub struct TaskForm { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_demo_task` and `validate` are never used [INFO] [stdout] --> src/tasks.rs:1976:12 [INFO] [stdout] | [INFO] [stdout] 1975 | impl TaskForm { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 1976 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2158 | pub fn validate(&self) -> FormErrors { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/tasks.rs:2188:10 [INFO] [stdout] | [INFO] [stdout] 2188 | async fn save_task( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2248:10 [INFO] [stdout] | [INFO] [stdout] 2248 | async fn change_schedule_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2277:10 [INFO] [stdout] | [INFO] [stdout] 2277 | async fn new_task_modal() -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task` is never used [INFO] [stdout] --> src/tasks.rs:2283:10 [INFO] [stdout] | [INFO] [stdout] 2283 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result, Option)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/db.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbSchedule` is never constructed [INFO] [stdout] --> src/db.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbTask` is never constructed [INFO] [stdout] --> src/db.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct DbTask { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_int_list` is never used [INFO] [stdout] --> src/db.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_schedule_parts` is never used [INFO] [stdout] --> src/db.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 202 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task` is never used [INFO] [stdout] --> src/db.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_tasks` is never used [INFO] [stdout] --> src/db.rs:313:14 [INFO] [stdout] | [INFO] [stdout] 313 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_count` is never used [INFO] [stdout] --> src/db.rs:358:14 [INFO] [stdout] | [INFO] [stdout] 358 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tasks_paginated` is never used [INFO] [stdout] --> src/db.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn get_tasks_paginated( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/db.rs:425:14 [INFO] [stdout] | [INFO] [stdout] 425 | pub async fn save_task(pool: &DbPool, task: &DemoTask) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_task_deleted_at` is never used [INFO] [stdout] --> src/db.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDays` is never constructed [INFO] [stdout] --> src/schedule.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct NDays { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NWeeks` is never constructed [INFO] [stdout] --> src/schedule.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct NWeeks { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Monthwise` is never constructed [INFO] [stdout] --> src/schedule.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Monthwise { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WeeksOfMonth` is never constructed [INFO] [stdout] --> src/schedule.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2313:10 [INFO] [stdout] | [INFO] [stdout] 2313 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_default_task` is never used [INFO] [stdout] --> src/tasks.rs:2319:4 [INFO] [stdout] | [INFO] [stdout] 2319 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2339:12 [INFO] [stdout] | [INFO] [stdout] 2339 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2359:12 [INFO] [stdout] | [INFO] [stdout] 2356 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2359 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2393 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2401 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2406 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2446 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2455 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2468 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2491 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_n_days` is never used [INFO] [stdout] --> src/tasks.rs:2519:8 [INFO] [stdout] | [INFO] [stdout] 2519 | pub fn default_n_days() -> NDays { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_n_weeks` is never used [INFO] [stdout] --> src/tasks.rs:2526:8 [INFO] [stdout] | [INFO] [stdout] 2526 | pub fn default_n_weeks() -> NWeeks { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_monthwise` is never used [INFO] [stdout] --> src/tasks.rs:2543:8 [INFO] [stdout] | [INFO] [stdout] 2543 | pub fn default_monthwise() -> Monthwise { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_weeks_of_month` is never used [INFO] [stdout] --> src/tasks.rs:2550:8 [INFO] [stdout] | [INFO] [stdout] 2550 | pub fn default_weeks_of_month() -> WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_certain_months` is never used [INFO] [stdout] --> src/tasks.rs:2566:8 [INFO] [stdout] | [INFO] [stdout] 2566 | pub fn default_certain_months() -> CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_once` is never used [INFO] [stdout] --> src/tasks.rs:2574:8 [INFO] [stdout] | [INFO] [stdout] 2574 | pub fn default_once() -> Once { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_sort_select` is never used [INFO] [stdout] --> src/tasks.rs:2584:4 [INFO] [stdout] | [INFO] [stdout] 2584 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_per_page_select` is never used [INFO] [stdout] --> src/tasks.rs:2596:4 [INFO] [stdout] | [INFO] [stdout] 2596 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DaysOfWeek` is never constructed [INFO] [stdout] --> src/schedule.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct DaysOfWeek { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list` is never used [INFO] [stdout] --> src/tasks.rs:2613:10 [INFO] [stdout] | [INFO] [stdout] 2613 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2662:4 [INFO] [stdout] | [INFO] [stdout] 2662 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list_item` is never used [INFO] [stdout] --> src/tasks.rs:2772:4 [INFO] [stdout] | [INFO] [stdout] 2772 | fn render_task_list_item(task: &DemoTask, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2806:4 [INFO] [stdout] | [INFO] [stdout] 2806 | fn html_escape(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2813:4 [INFO] [stdout] | [INFO] [stdout] 2813 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2825:4 [INFO] [stdout] | [INFO] [stdout] 2825 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2837:4 [INFO] [stdout] | [INFO] [stdout] 2837 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2849:4 [INFO] [stdout] | [INFO] [stdout] 2849 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor` is never used [INFO] [stdout] --> src/tasks.rs:2861:8 [INFO] [stdout] | [INFO] [stdout] 2861 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor_inner` is never used [INFO] [stdout] --> src/tasks.rs:2865:4 [INFO] [stdout] | [INFO] [stdout] 2865 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_schedule_type_select` is never used [INFO] [stdout] --> src/tasks.rs:3044:4 [INFO] [stdout] | [INFO] [stdout] 3044 | fn render_schedule_type_select( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_alerting_time_input` is never used [INFO] [stdout] --> src/tasks.rs:3074:4 [INFO] [stdout] | [INFO] [stdout] 3074 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_alerting_time` is never used [INFO] [stdout] --> src/tasks.rs:3126:4 [INFO] [stdout] | [INFO] [stdout] 3126 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_days_editor` is never used [INFO] [stdout] --> src/tasks.rs:3143:4 [INFO] [stdout] | [INFO] [stdout] 3143 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_weeks_editor` is never used [INFO] [stdout] --> src/tasks.rs:3176:4 [INFO] [stdout] | [INFO] [stdout] 3176 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_monthwise_editor` is never used [INFO] [stdout] --> src/tasks.rs:3288:4 [INFO] [stdout] | [INFO] [stdout] 3288 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_weeks_of_month_editor` is never used [INFO] [stdout] --> src/tasks.rs:3335:4 [INFO] [stdout] | [INFO] [stdout] 3335 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_certain_months_editor` is never used [INFO] [stdout] --> src/tasks.rs:3453:4 [INFO] [stdout] | [INFO] [stdout] 3453 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_once_editor` is never used [INFO] [stdout] --> src/tasks.rs:3533:4 [INFO] [stdout] | [INFO] [stdout] 3533 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active` is never used [INFO] [stdout] --> src/schedule.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl DaysOfWeek { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 75 | pub fn active(&self, day: Weekday) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Settings` is never constructed [INFO] [stdout] --> src/settings.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Settings { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tag_str` is never used [INFO] [stdout] --> src/settings.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn parse_tag_str(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `parsed_tags` is never used [INFO] [stdout] --> src/settings.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parsed_tags(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/settings.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn is_touch_mode(headers: &HeaderMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_settings` is never used [INFO] [stdout] --> src/settings.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn read_settings(headers: &HeaderMap) -> Settings { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cookie_header` is never used [INFO] [stdout] --> src/settings.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn set_cookie_header(settings: &Settings) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SettingsForm` is never constructed [INFO] [stdout] --> src/settings.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct SettingsForm { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `settings_page` is never used [INFO] [stdout] --> src/settings.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | pub async fn settings_page(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_settings` is never used [INFO] [stdout] --> src/settings.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | pub async fn save_settings( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_settings_page` is never used [INFO] [stdout] --> src/settings.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn render_settings_page(settings: &Settings, people: &[db::Person], error: Option<&str>) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AddPersonForm` is never constructed [INFO] [stdout] --> src/settings.rs:337:12 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct AddPersonForm { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/settings.rs:341:14 [INFO] [stdout] | [INFO] [stdout] 341 | pub async fn add_person( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/settings.rs:357:14 [INFO] [stdout] | [INFO] [stdout] 357 | pub async fn delete_person( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_day_range` is never used [INFO] [stdout] --> src/tasks.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn parse_day_range(input: &str) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_day_range` is never used [INFO] [stdout] --> src/tasks.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn format_day_range(days: &[i32]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FormErrors` is never constructed [INFO] [stdout] --> src/tasks.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct FormErrors { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_errors` is never used [INFO] [stdout] --> src/tasks.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 138 | impl FormErrors { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 139 | pub fn has_errors(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_demo_tasks` is never used [INFO] [stdout] --> src/tasks.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_demo_id` is never used [INFO] [stdout] --> src/tasks.rs:269:4 [INFO] [stdout] | [INFO] [stdout] 269 | fn is_demo_id(id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `router` is never used [INFO] [stdout] --> src/tasks.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_picker` is never used [INFO] [stdout] --> src/tasks.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | async fn complete_picker(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompleteQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | pub struct CompleteQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 313 | async fn complete_task( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:330:10 [INFO] [stdout] | [INFO] [stdout] 330 | async fn delete_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:343:10 [INFO] [stdout] | [INFO] [stdout] 343 | async fn restore_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | async fn task_show(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:384:10 [INFO] [stdout] | [INFO] [stdout] 384 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | pub async fn homepage(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 589 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:596:14 [INFO] [stdout] | [INFO] [stdout] 596 | pub async fn daily_today( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page` is never used [INFO] [stdout] --> src/tasks.rs:614:14 [INFO] [stdout] | [INFO] [stdout] 614 | pub async fn daily_page( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:875:4 [INFO] [stdout] | [INFO] [stdout] 875 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CalendarQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:899:14 [INFO] [stdout] | [INFO] [stdout] 899 | pub async fn calendar_today( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page` is never used [INFO] [stdout] --> src/tasks.rs:916:14 [INFO] [stdout] | [INFO] [stdout] 916 | pub async fn calendar_page( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:925:10 [INFO] [stdout] | [INFO] [stdout] 925 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1194:4 [INFO] [stdout] | [INFO] [stdout] 1194 | fn render_task_card(task: &DemoTask, status: &str, is_touch: bool, completed_by: Option<&str>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1261:4 [INFO] [stdout] | [INFO] [stdout] 1261 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord], is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1466:4 [INFO] [stdout] | [INFO] [stdout] 1466 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_due_on_date` is never used [INFO] [stdout] --> src/tasks.rs:1611:4 [INFO] [stdout] | [INFO] [stdout] 1611 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_due_time` is never used [INFO] [stdout] --> src/tasks.rs:1671:4 [INFO] [stdout] | [INFO] [stdout] 1671 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_next_due_after` is never used [INFO] [stdout] --> src/tasks.rs:1685:4 [INFO] [stdout] | [INFO] [stdout] 1685 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_completions_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:4 [INFO] [stdout] | [INFO] [stdout] 1704 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:1747:12 [INFO] [stdout] | [INFO] [stdout] 1747 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1756:4 [INFO] [stdout] | [INFO] [stdout] 1756 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1760:4 [INFO] [stdout] | [INFO] [stdout] 1760 | fn default_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_per_page` is never used [INFO] [stdout] --> src/tasks.rs:1764:4 [INFO] [stdout] | [INFO] [stdout] 1764 | fn default_per_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_index` is never used [INFO] [stdout] --> src/tasks.rs:1769:10 [INFO] [stdout] | [INFO] [stdout] 1769 | async fn tasks_index(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1826:10 [INFO] [stdout] | [INFO] [stdout] 1826 | async fn tasks_list(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1832:10 [INFO] [stdout] | [INFO] [stdout] 1832 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit_modal` is never used [INFO] [stdout] --> src/tasks.rs:1854:10 [INFO] [stdout] | [INFO] [stdout] 1854 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaskForm` is never constructed [INFO] [stdout] --> src/tasks.rs:1877:12 [INFO] [stdout] | [INFO] [stdout] 1877 | pub struct TaskForm { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_demo_task` and `validate` are never used [INFO] [stdout] --> src/tasks.rs:1976:12 [INFO] [stdout] | [INFO] [stdout] 1975 | impl TaskForm { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 1976 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2158 | pub fn validate(&self) -> FormErrors { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/tasks.rs:2188:10 [INFO] [stdout] | [INFO] [stdout] 2188 | async fn save_task( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2248:10 [INFO] [stdout] | [INFO] [stdout] 2248 | async fn change_schedule_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2277:10 [INFO] [stdout] | [INFO] [stdout] 2277 | async fn new_task_modal() -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task` is never used [INFO] [stdout] --> src/tasks.rs:2283:10 [INFO] [stdout] | [INFO] [stdout] 2283 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2313:10 [INFO] [stdout] | [INFO] [stdout] 2313 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_default_task` is never used [INFO] [stdout] --> src/tasks.rs:2319:4 [INFO] [stdout] | [INFO] [stdout] 2319 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2339:12 [INFO] [stdout] | [INFO] [stdout] 2339 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2359:12 [INFO] [stdout] | [INFO] [stdout] 2356 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2359 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2393 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2401 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2406 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2446 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2455 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2468 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2491 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_n_days` is never used [INFO] [stdout] --> src/tasks.rs:2519:8 [INFO] [stdout] | [INFO] [stdout] 2519 | pub fn default_n_days() -> NDays { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_n_weeks` is never used [INFO] [stdout] --> src/tasks.rs:2526:8 [INFO] [stdout] | [INFO] [stdout] 2526 | pub fn default_n_weeks() -> NWeeks { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_monthwise` is never used [INFO] [stdout] --> src/tasks.rs:2543:8 [INFO] [stdout] | [INFO] [stdout] 2543 | pub fn default_monthwise() -> Monthwise { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_weeks_of_month` is never used [INFO] [stdout] --> src/tasks.rs:2550:8 [INFO] [stdout] | [INFO] [stdout] 2550 | pub fn default_weeks_of_month() -> WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_certain_months` is never used [INFO] [stdout] --> src/tasks.rs:2566:8 [INFO] [stdout] | [INFO] [stdout] 2566 | pub fn default_certain_months() -> CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_once` is never used [INFO] [stdout] --> src/tasks.rs:2574:8 [INFO] [stdout] | [INFO] [stdout] 2574 | pub fn default_once() -> Once { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_sort_select` is never used [INFO] [stdout] --> src/tasks.rs:2584:4 [INFO] [stdout] | [INFO] [stdout] 2584 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_per_page_select` is never used [INFO] [stdout] --> src/tasks.rs:2596:4 [INFO] [stdout] | [INFO] [stdout] 2596 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list` is never used [INFO] [stdout] --> src/tasks.rs:2613:10 [INFO] [stdout] | [INFO] [stdout] 2613 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2662:4 [INFO] [stdout] | [INFO] [stdout] 2662 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list_item` is never used [INFO] [stdout] --> src/tasks.rs:2772:4 [INFO] [stdout] | [INFO] [stdout] 2772 | fn render_task_list_item(task: &DemoTask, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2806:4 [INFO] [stdout] | [INFO] [stdout] 2806 | fn html_escape(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2813:4 [INFO] [stdout] | [INFO] [stdout] 2813 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2825:4 [INFO] [stdout] | [INFO] [stdout] 2825 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2837:4 [INFO] [stdout] | [INFO] [stdout] 2837 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2849:4 [INFO] [stdout] | [INFO] [stdout] 2849 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor` is never used [INFO] [stdout] --> src/tasks.rs:2861:8 [INFO] [stdout] | [INFO] [stdout] 2861 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor_inner` is never used [INFO] [stdout] --> src/tasks.rs:2865:4 [INFO] [stdout] | [INFO] [stdout] 2865 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_schedule_type_select` is never used [INFO] [stdout] --> src/tasks.rs:3044:4 [INFO] [stdout] | [INFO] [stdout] 3044 | fn render_schedule_type_select( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_alerting_time_input` is never used [INFO] [stdout] --> src/tasks.rs:3074:4 [INFO] [stdout] | [INFO] [stdout] 3074 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_alerting_time` is never used [INFO] [stdout] --> src/tasks.rs:3126:4 [INFO] [stdout] | [INFO] [stdout] 3126 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_days_editor` is never used [INFO] [stdout] --> src/tasks.rs:3143:4 [INFO] [stdout] | [INFO] [stdout] 3143 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_weeks_editor` is never used [INFO] [stdout] --> src/tasks.rs:3176:4 [INFO] [stdout] | [INFO] [stdout] 3176 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_monthwise_editor` is never used [INFO] [stdout] --> src/tasks.rs:3288:4 [INFO] [stdout] | [INFO] [stdout] 3288 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_weeks_of_month_editor` is never used [INFO] [stdout] --> src/tasks.rs:3335:4 [INFO] [stdout] | [INFO] [stdout] 3335 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_certain_months_editor` is never used [INFO] [stdout] --> src/tasks.rs:3453:4 [INFO] [stdout] | [INFO] [stdout] 3453 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_once_editor` is never used [INFO] [stdout] --> src/tasks.rs:3533:4 [INFO] [stdout] | [INFO] [stdout] 3533 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `APP_TIMEZONE` is never used [INFO] [stdout] --> src/config.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | static APP_TIMEZONE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `TOUCH_MODE` is never used [INFO] [stdout] --> src/config.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | static TOUCH_MODE: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_timezone` is never used [INFO] [stdout] --> src/config.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn init_timezone(tz_str: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_timezone` is never used [INFO] [stdout] --> src/config.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_timezone() -> Tz { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_touch_mode` is never used [INFO] [stdout] --> src/config.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn init_touch_mode(enabled: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Person` is never constructed [INFO] [stdout] --> src/db.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Person { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_people` is never used [INFO] [stdout] --> src/db.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn get_all_people(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/db.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn add_person(pool: &DbPool, initials: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/db.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | pub async fn delete_person(pool: &DbPool, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | pub async fn add_completion(pool: &DbPool, task_id: &str, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result, Option)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/db.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_int_list` is never used [INFO] [stdout] --> src/db.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_schedule_parts` is never used [INFO] [stdout] --> src/db.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 202 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task` is never used [INFO] [stdout] --> src/db.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_tasks` is never used [INFO] [stdout] --> src/db.rs:313:14 [INFO] [stdout] | [INFO] [stdout] 313 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_count` is never used [INFO] [stdout] --> src/db.rs:358:14 [INFO] [stdout] | [INFO] [stdout] 358 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tasks_paginated` is never used [INFO] [stdout] --> src/db.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn get_tasks_paginated( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/db.rs:425:14 [INFO] [stdout] | [INFO] [stdout] 425 | pub async fn save_task(pool: &DbPool, task: &DemoTask) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_task_deleted_at` is never used [INFO] [stdout] --> src/db.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> src/schedule.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct NDays { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 22 | pub days: i32, [INFO] [stdout] 23 | pub time: NaiveTime, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NDays` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `offset` is never read [INFO] [stdout] --> src/schedule.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct NWeeks { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 31 | pub weeks: i32, [INFO] [stdout] 32 | pub offset: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NWeeks` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> src/schedule.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Monthwise { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 40 | pub days: Vec, [INFO] [stdout] 41 | pub time: NaiveTime, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Monthwise` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sub_schedule` is never read [INFO] [stdout] --> src/schedule.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct WeeksOfMonth { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 49 | pub weeks: Vec, [INFO] [stdout] 50 | pub sub_schedule: DaysOfWeek, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WeeksOfMonth` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> src/schedule.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct DaysOfWeek { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 71 | pub time: NaiveTime, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DaysOfWeek` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Settings` is never constructed [INFO] [stdout] --> src/settings.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Settings { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tag_str` is never used [INFO] [stdout] --> src/settings.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn parse_tag_str(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `parsed_tags` is never used [INFO] [stdout] --> src/settings.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parsed_tags(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/settings.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn is_touch_mode(headers: &HeaderMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_settings` is never used [INFO] [stdout] --> src/settings.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn read_settings(headers: &HeaderMap) -> Settings { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cookie_header` is never used [INFO] [stdout] --> src/settings.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn set_cookie_header(settings: &Settings) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SettingsForm` is never constructed [INFO] [stdout] --> src/settings.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct SettingsForm { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `settings_page` is never used [INFO] [stdout] --> src/settings.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | pub async fn settings_page(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_settings` is never used [INFO] [stdout] --> src/settings.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | pub async fn save_settings( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_settings_page` is never used [INFO] [stdout] --> src/settings.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn render_settings_page(settings: &Settings, people: &[db::Person], error: Option<&str>) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AddPersonForm` is never constructed [INFO] [stdout] --> src/settings.rs:337:12 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct AddPersonForm { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/settings.rs:341:14 [INFO] [stdout] | [INFO] [stdout] 341 | pub async fn add_person( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/settings.rs:357:14 [INFO] [stdout] | [INFO] [stdout] 357 | pub async fn delete_person( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_demo_tasks` is never used [INFO] [stdout] --> src/tasks.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_demo_id` is never used [INFO] [stdout] --> src/tasks.rs:269:4 [INFO] [stdout] | [INFO] [stdout] 269 | fn is_demo_id(id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `router` is never used [INFO] [stdout] --> src/tasks.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_picker` is never used [INFO] [stdout] --> src/tasks.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | async fn complete_picker(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompleteQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | pub struct CompleteQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 313 | async fn complete_task( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:330:10 [INFO] [stdout] | [INFO] [stdout] 330 | async fn delete_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:343:10 [INFO] [stdout] | [INFO] [stdout] 343 | async fn restore_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | async fn task_show(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:384:10 [INFO] [stdout] | [INFO] [stdout] 384 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | pub async fn homepage(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 589 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:596:14 [INFO] [stdout] | [INFO] [stdout] 596 | pub async fn daily_today( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page` is never used [INFO] [stdout] --> src/tasks.rs:614:14 [INFO] [stdout] | [INFO] [stdout] 614 | pub async fn daily_page( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:875:4 [INFO] [stdout] | [INFO] [stdout] 875 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CalendarQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:899:14 [INFO] [stdout] | [INFO] [stdout] 899 | pub async fn calendar_today( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page` is never used [INFO] [stdout] --> src/tasks.rs:916:14 [INFO] [stdout] | [INFO] [stdout] 916 | pub async fn calendar_page( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:925:10 [INFO] [stdout] | [INFO] [stdout] 925 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1194:4 [INFO] [stdout] | [INFO] [stdout] 1194 | fn render_task_card(task: &DemoTask, status: &str, is_touch: bool, completed_by: Option<&str>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1261:4 [INFO] [stdout] | [INFO] [stdout] 1261 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord], is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1466:4 [INFO] [stdout] | [INFO] [stdout] 1466 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_due_on_date` is never used [INFO] [stdout] --> src/tasks.rs:1611:4 [INFO] [stdout] | [INFO] [stdout] 1611 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_due_time` is never used [INFO] [stdout] --> src/tasks.rs:1671:4 [INFO] [stdout] | [INFO] [stdout] 1671 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_next_due_after` is never used [INFO] [stdout] --> src/tasks.rs:1685:4 [INFO] [stdout] | [INFO] [stdout] 1685 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_completions_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:4 [INFO] [stdout] | [INFO] [stdout] 1704 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:1747:12 [INFO] [stdout] | [INFO] [stdout] 1747 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1756:4 [INFO] [stdout] | [INFO] [stdout] 1756 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1760:4 [INFO] [stdout] | [INFO] [stdout] 1760 | fn default_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_per_page` is never used [INFO] [stdout] --> src/tasks.rs:1764:4 [INFO] [stdout] | [INFO] [stdout] 1764 | fn default_per_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_index` is never used [INFO] [stdout] --> src/tasks.rs:1769:10 [INFO] [stdout] | [INFO] [stdout] 1769 | async fn tasks_index(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1826:10 [INFO] [stdout] | [INFO] [stdout] 1826 | async fn tasks_list(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1832:10 [INFO] [stdout] | [INFO] [stdout] 1832 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit_modal` is never used [INFO] [stdout] --> src/tasks.rs:1854:10 [INFO] [stdout] | [INFO] [stdout] 1854 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/tasks.rs:1878:9 [INFO] [stdout] | [INFO] [stdout] 1877 | pub struct TaskForm { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 1878 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1879 | pub details: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1882 | pub n_days_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1883 | #[serde(default)] [INFO] [stdout] 1884 | pub n_days_time: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1885 | #[serde(default)] [INFO] [stdout] 1886 | pub n_weeks_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1887 | #[serde(default)] [INFO] [stdout] 1888 | pub n_weeks_offset: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1889 | #[serde(default)] [INFO] [stdout] 1890 | pub n_weeks_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1891 | #[serde(default)] [INFO] [stdout] 1892 | pub dow_sun: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1893 | #[serde(default)] [INFO] [stdout] 1894 | pub dow_mon: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1895 | #[serde(default)] [INFO] [stdout] 1896 | pub dow_tue: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1897 | #[serde(default)] [INFO] [stdout] 1898 | pub dow_wed: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1899 | #[serde(default)] [INFO] [stdout] 1900 | pub dow_thu: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1901 | #[serde(default)] [INFO] [stdout] 1902 | pub dow_fri: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1903 | #[serde(default)] [INFO] [stdout] 1904 | pub dow_sat: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1908 | pub monthwise_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1909 | #[serde(default)] [INFO] [stdout] 1910 | pub wom_week_1: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1911 | #[serde(default)] [INFO] [stdout] 1912 | pub wom_week_2: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1913 | #[serde(default)] [INFO] [stdout] 1914 | pub wom_week_3: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1915 | #[serde(default)] [INFO] [stdout] 1916 | pub wom_week_4: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1917 | #[serde(default)] [INFO] [stdout] 1918 | pub wom_week_5: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1919 | #[serde(default)] [INFO] [stdout] 1920 | pub wom_dow_sun: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1921 | #[serde(default)] [INFO] [stdout] 1922 | pub wom_dow_mon: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1923 | #[serde(default)] [INFO] [stdout] 1924 | pub wom_dow_tue: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1925 | #[serde(default)] [INFO] [stdout] 1926 | pub wom_dow_wed: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1927 | #[serde(default)] [INFO] [stdout] 1928 | pub wom_dow_thu: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1929 | #[serde(default)] [INFO] [stdout] 1930 | pub wom_dow_fri: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1931 | #[serde(default)] [INFO] [stdout] 1932 | pub wom_dow_sat: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1933 | #[serde(default)] [INFO] [stdout] 1934 | pub wom_time: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1935 | #[serde(default)] [INFO] [stdout] 1936 | pub cm_month_jan: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1937 | #[serde(default)] [INFO] [stdout] 1938 | pub cm_month_feb: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1939 | #[serde(default)] [INFO] [stdout] 1940 | pub cm_month_mar: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1941 | #[serde(default)] [INFO] [stdout] 1942 | pub cm_month_apr: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1943 | #[serde(default)] [INFO] [stdout] 1944 | pub cm_month_may: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1945 | #[serde(default)] [INFO] [stdout] 1946 | pub cm_month_jun: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1947 | #[serde(default)] [INFO] [stdout] 1948 | pub cm_month_jul: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1949 | #[serde(default)] [INFO] [stdout] 1950 | pub cm_month_aug: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1951 | #[serde(default)] [INFO] [stdout] 1952 | pub cm_month_sep: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1953 | #[serde(default)] [INFO] [stdout] 1954 | pub cm_month_oct: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1955 | #[serde(default)] [INFO] [stdout] 1956 | pub cm_month_nov: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1957 | #[serde(default)] [INFO] [stdout] 1958 | pub cm_month_dec: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1962 | pub cm_time: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1963 | #[serde(default)] [INFO] [stdout] 1964 | pub once_now: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1965 | #[serde(default)] [INFO] [stdout] 1966 | pub once_date: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1967 | #[serde(default)] [INFO] [stdout] 1968 | pub once_time: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1969 | #[serde(default)] [INFO] [stdout] 1970 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1971 | #[serde(default)] [INFO] [stdout] 1972 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TaskForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_demo_task` is never used [INFO] [stdout] --> src/tasks.rs:1976:12 [INFO] [stdout] | [INFO] [stdout] 1975 | impl TaskForm { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 1976 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/tasks.rs:2188:10 [INFO] [stdout] | [INFO] [stdout] 2188 | async fn save_task( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2248:10 [INFO] [stdout] | [INFO] [stdout] 2248 | async fn change_schedule_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2277:10 [INFO] [stdout] | [INFO] [stdout] 2277 | async fn new_task_modal() -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task` is never used [INFO] [stdout] --> src/tasks.rs:2283:10 [INFO] [stdout] | [INFO] [stdout] 2283 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2313:10 [INFO] [stdout] | [INFO] [stdout] 2313 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_default_task` is never used [INFO] [stdout] --> src/tasks.rs:2319:4 [INFO] [stdout] | [INFO] [stdout] 2319 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2339:12 [INFO] [stdout] | [INFO] [stdout] 2339 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2359:12 [INFO] [stdout] | [INFO] [stdout] 2356 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2359 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2393 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2401 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2406 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2446 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2455 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2468 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2491 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_certain_months` is never used [INFO] [stdout] --> src/tasks.rs:2566:8 [INFO] [stdout] | [INFO] [stdout] 2566 | pub fn default_certain_months() -> CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_once` is never used [INFO] [stdout] --> src/tasks.rs:2574:8 [INFO] [stdout] | [INFO] [stdout] 2574 | pub fn default_once() -> Once { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_sort_select` is never used [INFO] [stdout] --> src/tasks.rs:2584:4 [INFO] [stdout] | [INFO] [stdout] 2584 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_per_page_select` is never used [INFO] [stdout] --> src/tasks.rs:2596:4 [INFO] [stdout] | [INFO] [stdout] 2596 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list` is never used [INFO] [stdout] --> src/tasks.rs:2613:10 [INFO] [stdout] | [INFO] [stdout] 2613 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2662:4 [INFO] [stdout] | [INFO] [stdout] 2662 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list_item` is never used [INFO] [stdout] --> src/tasks.rs:2772:4 [INFO] [stdout] | [INFO] [stdout] 2772 | fn render_task_list_item(task: &DemoTask, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2806:4 [INFO] [stdout] | [INFO] [stdout] 2806 | fn html_escape(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2813:4 [INFO] [stdout] | [INFO] [stdout] 2813 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2825:4 [INFO] [stdout] | [INFO] [stdout] 2825 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2837:4 [INFO] [stdout] | [INFO] [stdout] 2837 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2849:4 [INFO] [stdout] | [INFO] [stdout] 2849 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor` is never used [INFO] [stdout] --> src/tasks.rs:2861:8 [INFO] [stdout] | [INFO] [stdout] 2861 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor_inner` is never used [INFO] [stdout] --> src/tasks.rs:2865:4 [INFO] [stdout] | [INFO] [stdout] 2865 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_schedule_type_select` is never used [INFO] [stdout] --> src/tasks.rs:3044:4 [INFO] [stdout] | [INFO] [stdout] 3044 | fn render_schedule_type_select( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_alerting_time_input` is never used [INFO] [stdout] --> src/tasks.rs:3074:4 [INFO] [stdout] | [INFO] [stdout] 3074 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_alerting_time` is never used [INFO] [stdout] --> src/tasks.rs:3126:4 [INFO] [stdout] | [INFO] [stdout] 3126 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_days_editor` is never used [INFO] [stdout] --> src/tasks.rs:3143:4 [INFO] [stdout] | [INFO] [stdout] 3143 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_weeks_editor` is never used [INFO] [stdout] --> src/tasks.rs:3176:4 [INFO] [stdout] | [INFO] [stdout] 3176 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_monthwise_editor` is never used [INFO] [stdout] --> src/tasks.rs:3288:4 [INFO] [stdout] | [INFO] [stdout] 3288 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_weeks_of_month_editor` is never used [INFO] [stdout] --> src/tasks.rs:3335:4 [INFO] [stdout] | [INFO] [stdout] 3335 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_certain_months_editor` is never used [INFO] [stdout] --> src/tasks.rs:3453:4 [INFO] [stdout] | [INFO] [stdout] 3453 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_once_editor` is never used [INFO] [stdout] --> src/tasks.rs:3533:4 [INFO] [stdout] | [INFO] [stdout] 3533 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_timezone` is never used [INFO] [stdout] --> src/config.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_timezone() -> Tz { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Person` is never constructed [INFO] [stdout] --> src/db.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Person { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_people` is never used [INFO] [stdout] --> src/db.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn get_all_people(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/db.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn add_person(pool: &DbPool, initials: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/db.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | pub async fn delete_person(pool: &DbPool, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | pub async fn add_completion(pool: &DbPool, task_id: &str, person_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result, Option)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/db.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbSchedule` is never constructed [INFO] [stdout] --> src/db.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/db.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct DbTask { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 166 | pub id: i64, [INFO] [stdout] | ^^ [INFO] [stdout] 167 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 168 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 169 | pub schedule_id: i64, [INFO] [stdout] 170 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 171 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 172 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 173 | pub deleted_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DbTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:184:4 [INFO] [stdout] | [INFO] [stdout] 184 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_int_list` is never used [INFO] [stdout] --> src/db.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_schedule_parts` is never used [INFO] [stdout] --> src/db.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 202 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task` is never used [INFO] [stdout] --> src/db.rs:270:14 [INFO] [stdout] | [INFO] [stdout] 270 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_tasks` is never used [INFO] [stdout] --> src/db.rs:313:14 [INFO] [stdout] | [INFO] [stdout] 313 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_count` is never used [INFO] [stdout] --> src/db.rs:358:14 [INFO] [stdout] | [INFO] [stdout] 358 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tasks_paginated` is never used [INFO] [stdout] --> src/db.rs:366:14 [INFO] [stdout] | [INFO] [stdout] 366 | pub async fn get_tasks_paginated( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_task_deleted_at` is never used [INFO] [stdout] --> src/db.rs:640:14 [INFO] [stdout] | [INFO] [stdout] 640 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ScheduleKind { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | Once, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScheduleKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Settings` is never constructed [INFO] [stdout] --> src/settings.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Settings { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_tag_str` is never used [INFO] [stdout] --> src/settings.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn parse_tag_str(s: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `parsed_tags` is never used [INFO] [stdout] --> src/settings.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parsed_tags(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/settings.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn is_touch_mode(headers: &HeaderMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_settings` is never used [INFO] [stdout] --> src/settings.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn read_settings(headers: &HeaderMap) -> Settings { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cookie_header` is never used [INFO] [stdout] --> src/settings.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn set_cookie_header(settings: &Settings) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SettingsForm` is never constructed [INFO] [stdout] --> src/settings.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct SettingsForm { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `settings_page` is never used [INFO] [stdout] --> src/settings.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | pub async fn settings_page(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_settings` is never used [INFO] [stdout] --> src/settings.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | pub async fn save_settings( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_settings_page` is never used [INFO] [stdout] --> src/settings.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn render_settings_page(settings: &Settings, people: &[db::Person], error: Option<&str>) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AddPersonForm` is never constructed [INFO] [stdout] --> src/settings.rs:337:12 [INFO] [stdout] | [INFO] [stdout] 337 | pub struct AddPersonForm { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_person` is never used [INFO] [stdout] --> src/settings.rs:341:14 [INFO] [stdout] | [INFO] [stdout] 341 | pub async fn add_person( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_person` is never used [INFO] [stdout] --> src/settings.rs:357:14 [INFO] [stdout] | [INFO] [stdout] 357 | pub async fn delete_person( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_demo_tasks` is never used [INFO] [stdout] --> src/tasks.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_demo_id` is never used [INFO] [stdout] --> src/tasks.rs:269:4 [INFO] [stdout] | [INFO] [stdout] 269 | fn is_demo_id(id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `router` is never used [INFO] [stdout] --> src/tasks.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_picker` is never used [INFO] [stdout] --> src/tasks.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | async fn complete_picker(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompleteQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | pub struct CompleteQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 313 | async fn complete_task( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:330:10 [INFO] [stdout] | [INFO] [stdout] 330 | async fn delete_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:343:10 [INFO] [stdout] | [INFO] [stdout] 343 | async fn restore_task(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | async fn task_show(State(pool): State, Path(id): Path, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:384:10 [INFO] [stdout] | [INFO] [stdout] 384 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | pub async fn homepage(State(pool): State, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 589 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:596:14 [INFO] [stdout] | [INFO] [stdout] 596 | pub async fn daily_today( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page` is never used [INFO] [stdout] --> src/tasks.rs:614:14 [INFO] [stdout] | [INFO] [stdout] 614 | pub async fn daily_page( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:623:10 [INFO] [stdout] | [INFO] [stdout] 623 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:875:4 [INFO] [stdout] | [INFO] [stdout] 875 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CalendarQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:899:14 [INFO] [stdout] | [INFO] [stdout] 899 | pub async fn calendar_today( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page` is never used [INFO] [stdout] --> src/tasks.rs:916:14 [INFO] [stdout] | [INFO] [stdout] 916 | pub async fn calendar_page( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_page_inner` is never used [INFO] [stdout] --> src/tasks.rs:925:10 [INFO] [stdout] | [INFO] [stdout] 925 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32, is_touch: bool) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1194:4 [INFO] [stdout] | [INFO] [stdout] 1194 | fn render_task_card(task: &DemoTask, status: &str, is_touch: bool, completed_by: Option<&str>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1261:4 [INFO] [stdout] | [INFO] [stdout] 1261 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord], is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1466:4 [INFO] [stdout] | [INFO] [stdout] 1466 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_due_on_date` is never used [INFO] [stdout] --> src/tasks.rs:1611:4 [INFO] [stdout] | [INFO] [stdout] 1611 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_due_time` is never used [INFO] [stdout] --> src/tasks.rs:1671:4 [INFO] [stdout] | [INFO] [stdout] 1671 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_next_due_after` is never used [INFO] [stdout] --> src/tasks.rs:1685:4 [INFO] [stdout] | [INFO] [stdout] 1685 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_completions_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:4 [INFO] [stdout] | [INFO] [stdout] 1704 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:1747:12 [INFO] [stdout] | [INFO] [stdout] 1747 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1756:4 [INFO] [stdout] | [INFO] [stdout] 1756 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1760:4 [INFO] [stdout] | [INFO] [stdout] 1760 | fn default_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_per_page` is never used [INFO] [stdout] --> src/tasks.rs:1764:4 [INFO] [stdout] | [INFO] [stdout] 1764 | fn default_per_page() -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_index` is never used [INFO] [stdout] --> src/tasks.rs:1769:10 [INFO] [stdout] | [INFO] [stdout] 1769 | async fn tasks_index(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1826:10 [INFO] [stdout] | [INFO] [stdout] 1826 | async fn tasks_list(State(pool): State, Query(query): Query, headers: HeaderMap) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1832:10 [INFO] [stdout] | [INFO] [stdout] 1832 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit_modal` is never used [INFO] [stdout] --> src/tasks.rs:1854:10 [INFO] [stdout] | [INFO] [stdout] 1854 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/tasks.rs:1878:9 [INFO] [stdout] | [INFO] [stdout] 1877 | pub struct TaskForm { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 1878 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1879 | pub details: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1882 | pub n_days_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1883 | #[serde(default)] [INFO] [stdout] 1884 | pub n_days_time: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1885 | #[serde(default)] [INFO] [stdout] 1886 | pub n_weeks_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1887 | #[serde(default)] [INFO] [stdout] 1888 | pub n_weeks_offset: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1889 | #[serde(default)] [INFO] [stdout] 1890 | pub n_weeks_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1891 | #[serde(default)] [INFO] [stdout] 1892 | pub dow_sun: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1893 | #[serde(default)] [INFO] [stdout] 1894 | pub dow_mon: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1895 | #[serde(default)] [INFO] [stdout] 1896 | pub dow_tue: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1897 | #[serde(default)] [INFO] [stdout] 1898 | pub dow_wed: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1899 | #[serde(default)] [INFO] [stdout] 1900 | pub dow_thu: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1901 | #[serde(default)] [INFO] [stdout] 1902 | pub dow_fri: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1903 | #[serde(default)] [INFO] [stdout] 1904 | pub dow_sat: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1908 | pub monthwise_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1909 | #[serde(default)] [INFO] [stdout] 1910 | pub wom_week_1: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1911 | #[serde(default)] [INFO] [stdout] 1912 | pub wom_week_2: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1913 | #[serde(default)] [INFO] [stdout] 1914 | pub wom_week_3: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1915 | #[serde(default)] [INFO] [stdout] 1916 | pub wom_week_4: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1917 | #[serde(default)] [INFO] [stdout] 1918 | pub wom_week_5: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1919 | #[serde(default)] [INFO] [stdout] 1920 | pub wom_dow_sun: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1921 | #[serde(default)] [INFO] [stdout] 1922 | pub wom_dow_mon: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1923 | #[serde(default)] [INFO] [stdout] 1924 | pub wom_dow_tue: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1925 | #[serde(default)] [INFO] [stdout] 1926 | pub wom_dow_wed: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1927 | #[serde(default)] [INFO] [stdout] 1928 | pub wom_dow_thu: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1929 | #[serde(default)] [INFO] [stdout] 1930 | pub wom_dow_fri: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1931 | #[serde(default)] [INFO] [stdout] 1932 | pub wom_dow_sat: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1933 | #[serde(default)] [INFO] [stdout] 1934 | pub wom_time: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1935 | #[serde(default)] [INFO] [stdout] 1936 | pub cm_month_jan: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1937 | #[serde(default)] [INFO] [stdout] 1938 | pub cm_month_feb: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1939 | #[serde(default)] [INFO] [stdout] 1940 | pub cm_month_mar: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1941 | #[serde(default)] [INFO] [stdout] 1942 | pub cm_month_apr: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1943 | #[serde(default)] [INFO] [stdout] 1944 | pub cm_month_may: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1945 | #[serde(default)] [INFO] [stdout] 1946 | pub cm_month_jun: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1947 | #[serde(default)] [INFO] [stdout] 1948 | pub cm_month_jul: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1949 | #[serde(default)] [INFO] [stdout] 1950 | pub cm_month_aug: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1951 | #[serde(default)] [INFO] [stdout] 1952 | pub cm_month_sep: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1953 | #[serde(default)] [INFO] [stdout] 1954 | pub cm_month_oct: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1955 | #[serde(default)] [INFO] [stdout] 1956 | pub cm_month_nov: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1957 | #[serde(default)] [INFO] [stdout] 1958 | pub cm_month_dec: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1962 | pub cm_time: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1963 | #[serde(default)] [INFO] [stdout] 1964 | pub once_now: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1965 | #[serde(default)] [INFO] [stdout] 1966 | pub once_date: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1967 | #[serde(default)] [INFO] [stdout] 1968 | pub once_time: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1969 | #[serde(default)] [INFO] [stdout] 1970 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1971 | #[serde(default)] [INFO] [stdout] 1972 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TaskForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_demo_task` is never used [INFO] [stdout] --> src/tasks.rs:1976:12 [INFO] [stdout] | [INFO] [stdout] 1975 | impl TaskForm { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 1976 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_task` is never used [INFO] [stdout] --> src/tasks.rs:2188:10 [INFO] [stdout] | [INFO] [stdout] 2188 | async fn save_task( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `change_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2248:10 [INFO] [stdout] | [INFO] [stdout] 2248 | async fn change_schedule_type( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2277:10 [INFO] [stdout] | [INFO] [stdout] 2277 | async fn new_task_modal() -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task` is never used [INFO] [stdout] --> src/tasks.rs:2283:10 [INFO] [stdout] | [INFO] [stdout] 2283 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_task_schedule_type` is never used [INFO] [stdout] --> src/tasks.rs:2313:10 [INFO] [stdout] | [INFO] [stdout] 2313 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_default_task` is never used [INFO] [stdout] --> src/tasks.rs:2319:4 [INFO] [stdout] | [INFO] [stdout] 2319 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2359:12 [INFO] [stdout] | [INFO] [stdout] 2356 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2359 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2393 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2401 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2406 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2446 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2455 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2468 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2491 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_certain_months` is never used [INFO] [stdout] --> src/tasks.rs:2566:8 [INFO] [stdout] | [INFO] [stdout] 2566 | pub fn default_certain_months() -> CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_once` is never used [INFO] [stdout] --> src/tasks.rs:2574:8 [INFO] [stdout] | [INFO] [stdout] 2574 | pub fn default_once() -> Once { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_sort_select` is never used [INFO] [stdout] --> src/tasks.rs:2584:4 [INFO] [stdout] | [INFO] [stdout] 2584 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_per_page_select` is never used [INFO] [stdout] --> src/tasks.rs:2596:4 [INFO] [stdout] | [INFO] [stdout] 2596 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list` is never used [INFO] [stdout] --> src/tasks.rs:2613:10 [INFO] [stdout] | [INFO] [stdout] 2613 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2662:4 [INFO] [stdout] | [INFO] [stdout] 2662 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_list_item` is never used [INFO] [stdout] --> src/tasks.rs:2772:4 [INFO] [stdout] | [INFO] [stdout] 2772 | fn render_task_list_item(task: &DemoTask, is_touch: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2806:4 [INFO] [stdout] | [INFO] [stdout] 2806 | fn html_escape(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2813:4 [INFO] [stdout] | [INFO] [stdout] 2813 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2825:4 [INFO] [stdout] | [INFO] [stdout] 2825 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal` is never used [INFO] [stdout] --> src/tasks.rs:2837:4 [INFO] [stdout] | [INFO] [stdout] 2837 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stdout] --> src/tasks.rs:2849:4 [INFO] [stdout] | [INFO] [stdout] 2849 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor` is never used [INFO] [stdout] --> src/tasks.rs:2861:8 [INFO] [stdout] | [INFO] [stdout] 2861 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_editor_inner` is never used [INFO] [stdout] --> src/tasks.rs:2865:4 [INFO] [stdout] | [INFO] [stdout] 2865 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_schedule_type_select` is never used [INFO] [stdout] --> src/tasks.rs:3044:4 [INFO] [stdout] | [INFO] [stdout] 3044 | fn render_schedule_type_select( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_alerting_time_input` is never used [INFO] [stdout] --> src/tasks.rs:3074:4 [INFO] [stdout] | [INFO] [stdout] 3074 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_alerting_time` is never used [INFO] [stdout] --> src/tasks.rs:3126:4 [INFO] [stdout] | [INFO] [stdout] 3126 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_days_editor` is never used [INFO] [stdout] --> src/tasks.rs:3143:4 [INFO] [stdout] | [INFO] [stdout] 3143 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_n_weeks_editor` is never used [INFO] [stdout] --> src/tasks.rs:3176:4 [INFO] [stdout] | [INFO] [stdout] 3176 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_monthwise_editor` is never used [INFO] [stdout] --> src/tasks.rs:3288:4 [INFO] [stdout] | [INFO] [stdout] 3288 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_weeks_of_month_editor` is never used [INFO] [stdout] --> src/tasks.rs:3335:4 [INFO] [stdout] | [INFO] [stdout] 3335 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_certain_months_editor` is never used [INFO] [stdout] --> src/tasks.rs:3453:4 [INFO] [stdout] | [INFO] [stdout] 3453 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_once_editor` is never used [INFO] [stdout] --> src/tasks.rs:3533:4 [INFO] [stdout] | [INFO] [stdout] 3533 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Row` [INFO] [stdout] --> src/db.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [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 variable: `total_missing` [INFO] [stdout] --> src/photos.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let total_missing: usize = existing.iter().filter(|(_, p, was_missing)| { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_missing` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `total_missing` [INFO] [stdout] --> src/photos.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let total_missing: usize = existing.iter().filter(|(_, p, was_missing)| { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_missing` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/db.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct DbSchedule { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 127 | pub id: i64, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `DbSchedule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_touch_mode` is never used [INFO] [stdout] --> src/config.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_touch_mode() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/db.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct DbSchedule { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 127 | pub id: i64, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `DbSchedule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_down` is never used [INFO] [stdout] --> src/migrate.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | pub async fn run_down(pool: &SqlitePool, migrations_path: &Path, steps: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_migration` is never used [INFO] [stdout] --> src/migrate.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn create_migration(migrations_path: &Path, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_schema` is never used [INFO] [stdout] --> src/migrate.rs:186:14 [INFO] [stdout] | [INFO] [stdout] 186 | pub async fn dump_schema(pool: &SqlitePool, schema_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_schema_path` is never used [INFO] [stdout] --> src/migrate.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn default_schema_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.39s [INFO] running `Command { std: "docker" "inspect" "b518e9b7be9d0b5d317450f92a2465992164ab16b804df586eca62599f62f277", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b518e9b7be9d0b5d317450f92a2465992164ab16b804df586eca62599f62f277", kill_on_drop: false }` [INFO] [stdout] b518e9b7be9d0b5d317450f92a2465992164ab16b804df586eca62599f62f277