[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] a83dbba15f8a7ea342200712c0292971e57e0af4 [INFO] testing Zanderwohl/chores against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZanderwohl%2Fchores" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/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-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Zanderwohl/chores on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 675d6edb8c424235fbd8f3d1382fa2076fd6fb8a098ee7b31d7faf53c9ab3c71 [INFO] running `Command { std: "docker" "start" "-a" "675d6edb8c424235fbd8f3d1382fa2076fd6fb8a098ee7b31d7faf53c9ab3c71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "675d6edb8c424235fbd8f3d1382fa2076fd6fb8a098ee7b31d7faf53c9ab3c71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "675d6edb8c424235fbd8f3d1382fa2076fd6fb8a098ee7b31d7faf53c9ab3c71", kill_on_drop: false }` [INFO] [stdout] 675d6edb8c424235fbd8f3d1382fa2076fd6fb8a098ee7b31d7faf53c9ab3c71 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 6b84c40687b3cc0ee25fa82995f26baa3939f9c3122510df41dc61c8f4423f89 [INFO] running `Command { std: "docker" "start" "-a" "6b84c40687b3cc0ee25fa82995f26baa3939f9c3122510df41dc61c8f4423f89", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling tracing-core v0.1.35 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling cc v1.2.49 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling utf8-width v0.1.8 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling siphasher v1.0.1 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling html-escape v0.2.13 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling clap_lex v0.7.6 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling phf_shared v0.12.1 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Compiling clap_builder v4.5.53 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling phf v0.12.1 [INFO] [stderr] Compiling http-range-header v0.4.2 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling dotenvy v0.15.7 (https://github.com/allan2/dotenvy.git?branch=main#86c0d6dd) [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling hypertext-macros v0.12.1 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling tracing v0.1.43 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling axum-core v0.5.5 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling hypertext v0.12.1 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling clap v4.5.53 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling sqlx-core v0.8.6 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling axum v0.8.7 [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] Compiling sqlx v0.8.6 [INFO] [stderr] Compiling chores v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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] [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] [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] [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] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/db.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 155 | 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] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:57:19 [INFO] [stdout] | [INFO] [stdout] 56 | impl NDays { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 57 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:88:19 [INFO] [stdout] | [INFO] [stdout] 87 | impl NWeeks { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 88 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl Monthwise { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 134 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:228:19 [INFO] [stdout] | [INFO] [stdout] 227 | impl WeeksOfMonth { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 228 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [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: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | 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:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | 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:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/db.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct DbTask { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 193 | pub id: i64, [INFO] [stdout] | ^^ [INFO] [stdout] 194 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 195 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 196 | pub schedule_id: i64, [INFO] [stdout] 197 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 198 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 199 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 200 | 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:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | 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:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | 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:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | 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:296:14 [INFO] [stdout] | [INFO] [stdout] 296 | 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:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | 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:384:14 [INFO] [stdout] | [INFO] [stdout] 384 | 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:392:14 [INFO] [stdout] | [INFO] [stdout] 392 | 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:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | 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: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ScheduleKind { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 34 | 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 `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:57:19 [INFO] [stdout] | [INFO] [stdout] 56 | impl NDays { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 57 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:88:19 [INFO] [stdout] | [INFO] [stdout] 87 | impl NWeeks { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 88 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl Monthwise { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 134 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:228:19 [INFO] [stdout] | [INFO] [stdout] 227 | impl WeeksOfMonth { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 228 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active` is never used [INFO] [stdout] --> src/schedule.rs:328:12 [INFO] [stdout] | [INFO] [stdout] 327 | impl DaysOfWeek { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 328 | pub fn active(&self, day: Weekday) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_day_range` is never used [INFO] [stdout] --> src/tasks.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | 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:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | 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:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct FormErrors { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_errors` is never used [INFO] [stdout] --> src/tasks.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl FormErrors { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 136 | 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:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | 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:265:4 [INFO] [stdout] | [INFO] [stdout] 265 | 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:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:297:10 [INFO] [stdout] | [INFO] [stdout] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:348:10 [INFO] [stdout] | [INFO] [stdout] 348 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 549 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:556:14 [INFO] [stdout] | [INFO] [stdout] 556 | 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:572:14 [INFO] [stdout] | [INFO] [stdout] 572 | 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:579:10 [INFO] [stdout] | [INFO] [stdout] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:818:4 [INFO] [stdout] | [INFO] [stdout] 818 | 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:836:12 [INFO] [stdout] | [INFO] [stdout] 836 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:842:14 [INFO] [stdout] | [INFO] [stdout] 842 | 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:857:14 [INFO] [stdout] | [INFO] [stdout] 857 | 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:864:10 [INFO] [stdout] | [INFO] [stdout] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1099:4 [INFO] [stdout] | [INFO] [stdout] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1163:4 [INFO] [stdout] | [INFO] [stdout] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1363:4 [INFO] [stdout] | [INFO] [stdout] 1363 | 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:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | 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:1555:4 [INFO] [stdout] | [INFO] [stdout] 1555 | 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:1569:4 [INFO] [stdout] | [INFO] [stdout] 1569 | 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:1588:4 [INFO] [stdout] | [INFO] [stdout] 1588 | 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:1627:12 [INFO] [stdout] | [INFO] [stdout] 1627 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1636:4 [INFO] [stdout] | [INFO] [stdout] 1636 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1640:4 [INFO] [stdout] | [INFO] [stdout] 1640 | 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:1644:4 [INFO] [stdout] | [INFO] [stdout] 1644 | 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:1649:10 [INFO] [stdout] | [INFO] [stdout] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:10 [INFO] [stdout] | [INFO] [stdout] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1709:10 [INFO] [stdout] | [INFO] [stdout] 1709 | 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:1731:10 [INFO] [stdout] | [INFO] [stdout] 1731 | 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:1754:12 [INFO] [stdout] | [INFO] [stdout] 1754 | 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:1851:12 [INFO] [stdout] | [INFO] [stdout] 1850 | impl TaskForm { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 1851 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2025 | 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:2055:10 [INFO] [stdout] | [INFO] [stdout] 2055 | 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:2109:10 [INFO] [stdout] | [INFO] [stdout] 2109 | 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:2138:10 [INFO] [stdout] | [INFO] [stdout] 2138 | 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:2144:10 [INFO] [stdout] | [INFO] [stdout] 2144 | 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:2172:10 [INFO] [stdout] | [INFO] [stdout] 2172 | 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:2178:4 [INFO] [stdout] | [INFO] [stdout] 2178 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2218:12 [INFO] [stdout] | [INFO] [stdout] 2215 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2305 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2350 | 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:2378:8 [INFO] [stdout] | [INFO] [stdout] 2378 | 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:2385:8 [INFO] [stdout] | [INFO] [stdout] 2385 | 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:2401:8 [INFO] [stdout] | [INFO] [stdout] 2401 | 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:2408:8 [INFO] [stdout] | [INFO] [stdout] 2408 | 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:2424:8 [INFO] [stdout] | [INFO] [stdout] 2424 | 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:2432:8 [INFO] [stdout] | [INFO] [stdout] 2432 | 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:2442:4 [INFO] [stdout] | [INFO] [stdout] 2442 | 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:2454:4 [INFO] [stdout] | [INFO] [stdout] 2454 | 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:2471:10 [INFO] [stdout] | [INFO] [stdout] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2517:4 [INFO] [stdout] | [INFO] [stdout] 2517 | 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:2627:4 [INFO] [stdout] | [INFO] [stdout] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2661:4 [INFO] [stdout] | [INFO] [stdout] 2661 | 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:2668:4 [INFO] [stdout] | [INFO] [stdout] 2668 | 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:2680:4 [INFO] [stdout] | [INFO] [stdout] 2680 | 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:2692:4 [INFO] [stdout] | [INFO] [stdout] 2692 | 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:2704:4 [INFO] [stdout] | [INFO] [stdout] 2704 | 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:2716:8 [INFO] [stdout] | [INFO] [stdout] 2716 | 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:2720:4 [INFO] [stdout] | [INFO] [stdout] 2720 | 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:2899:4 [INFO] [stdout] | [INFO] [stdout] 2899 | 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:2929:4 [INFO] [stdout] | [INFO] [stdout] 2929 | 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:2981:4 [INFO] [stdout] | [INFO] [stdout] 2981 | 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:2998:4 [INFO] [stdout] | [INFO] [stdout] 2998 | 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:3031:4 [INFO] [stdout] | [INFO] [stdout] 3031 | 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:3133:4 [INFO] [stdout] | [INFO] [stdout] 3133 | 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:3180:4 [INFO] [stdout] | [INFO] [stdout] 3180 | 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:3298:4 [INFO] [stdout] | [INFO] [stdout] 3298 | 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:3378:4 [INFO] [stdout] | [INFO] [stdout] 3378 | 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: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | 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:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | 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:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbTask` is never constructed [INFO] [stdout] --> src/db.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct DbTask { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | 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:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | 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:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | 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:296:14 [INFO] [stdout] | [INFO] [stdout] 296 | 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:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | 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:384:14 [INFO] [stdout] | [INFO] [stdout] 384 | 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:392:14 [INFO] [stdout] | [INFO] [stdout] 392 | 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:451:14 [INFO] [stdout] | [INFO] [stdout] 451 | 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:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | 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: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDays` is never constructed [INFO] [stdout] --> src/schedule.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct NDays { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:57:19 [INFO] [stdout] | [INFO] [stdout] 56 | impl NDays { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 57 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NWeeks` is never constructed [INFO] [stdout] --> src/schedule.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct NWeeks { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:88:19 [INFO] [stdout] | [INFO] [stdout] 87 | impl NWeeks { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 88 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Monthwise` is never constructed [INFO] [stdout] --> src/schedule.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct Monthwise { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl Monthwise { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 134 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WeeksOfMonth` is never constructed [INFO] [stdout] --> src/schedule.rs:213:12 [INFO] [stdout] | [INFO] [stdout] 213 | pub struct WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:228:19 [INFO] [stdout] | [INFO] [stdout] 227 | impl WeeksOfMonth { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 228 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DaysOfWeek` is never constructed [INFO] [stdout] --> src/schedule.rs:316:12 [INFO] [stdout] | [INFO] [stdout] 316 | pub struct DaysOfWeek { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active` is never used [INFO] [stdout] --> src/schedule.rs:328:12 [INFO] [stdout] | [INFO] [stdout] 327 | impl DaysOfWeek { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 328 | pub fn active(&self, day: Weekday) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_day_range` is never used [INFO] [stdout] --> src/tasks.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | 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:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | 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:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct FormErrors { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_errors` is never used [INFO] [stdout] --> src/tasks.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl FormErrors { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 136 | 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:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | 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:265:4 [INFO] [stdout] | [INFO] [stdout] 265 | 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:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:297:10 [INFO] [stdout] | [INFO] [stdout] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:348:10 [INFO] [stdout] | [INFO] [stdout] 348 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 549 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:556:14 [INFO] [stdout] | [INFO] [stdout] 556 | 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:572:14 [INFO] [stdout] | [INFO] [stdout] 572 | 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:579:10 [INFO] [stdout] | [INFO] [stdout] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:818:4 [INFO] [stdout] | [INFO] [stdout] 818 | 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:836:12 [INFO] [stdout] | [INFO] [stdout] 836 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:842:14 [INFO] [stdout] | [INFO] [stdout] 842 | 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:857:14 [INFO] [stdout] | [INFO] [stdout] 857 | 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:864:10 [INFO] [stdout] | [INFO] [stdout] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1099:4 [INFO] [stdout] | [INFO] [stdout] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1163:4 [INFO] [stdout] | [INFO] [stdout] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1363:4 [INFO] [stdout] | [INFO] [stdout] 1363 | 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:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | 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:1555:4 [INFO] [stdout] | [INFO] [stdout] 1555 | 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:1569:4 [INFO] [stdout] | [INFO] [stdout] 1569 | 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:1588:4 [INFO] [stdout] | [INFO] [stdout] 1588 | 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:1627:12 [INFO] [stdout] | [INFO] [stdout] 1627 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1636:4 [INFO] [stdout] | [INFO] [stdout] 1636 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1640:4 [INFO] [stdout] | [INFO] [stdout] 1640 | 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:1644:4 [INFO] [stdout] | [INFO] [stdout] 1644 | 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:1649:10 [INFO] [stdout] | [INFO] [stdout] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:10 [INFO] [stdout] | [INFO] [stdout] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1709:10 [INFO] [stdout] | [INFO] [stdout] 1709 | 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:1731:10 [INFO] [stdout] | [INFO] [stdout] 1731 | 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:1754:12 [INFO] [stdout] | [INFO] [stdout] 1754 | 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:1851:12 [INFO] [stdout] | [INFO] [stdout] 1850 | impl TaskForm { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 1851 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2025 | 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:2055:10 [INFO] [stdout] | [INFO] [stdout] 2055 | 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:2109:10 [INFO] [stdout] | [INFO] [stdout] 2109 | 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:2138:10 [INFO] [stdout] | [INFO] [stdout] 2138 | 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:2144:10 [INFO] [stdout] | [INFO] [stdout] 2144 | 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:2172:10 [INFO] [stdout] | [INFO] [stdout] 2172 | 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:2178:4 [INFO] [stdout] | [INFO] [stdout] 2178 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2198:12 [INFO] [stdout] | [INFO] [stdout] 2198 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2218:12 [INFO] [stdout] | [INFO] [stdout] 2215 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2305 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2350 | 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:2378:8 [INFO] [stdout] | [INFO] [stdout] 2378 | 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:2385:8 [INFO] [stdout] | [INFO] [stdout] 2385 | 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:2401:8 [INFO] [stdout] | [INFO] [stdout] 2401 | 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:2408:8 [INFO] [stdout] | [INFO] [stdout] 2408 | 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:2424:8 [INFO] [stdout] | [INFO] [stdout] 2424 | 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:2432:8 [INFO] [stdout] | [INFO] [stdout] 2432 | 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:2442:4 [INFO] [stdout] | [INFO] [stdout] 2442 | 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:2454:4 [INFO] [stdout] | [INFO] [stdout] 2454 | 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:2471:10 [INFO] [stdout] | [INFO] [stdout] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2517:4 [INFO] [stdout] | [INFO] [stdout] 2517 | 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:2627:4 [INFO] [stdout] | [INFO] [stdout] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2661:4 [INFO] [stdout] | [INFO] [stdout] 2661 | 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:2668:4 [INFO] [stdout] | [INFO] [stdout] 2668 | 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:2680:4 [INFO] [stdout] | [INFO] [stdout] 2680 | 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:2692:4 [INFO] [stdout] | [INFO] [stdout] 2692 | 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:2704:4 [INFO] [stdout] | [INFO] [stdout] 2704 | 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:2716:8 [INFO] [stdout] | [INFO] [stdout] 2716 | 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:2720:4 [INFO] [stdout] | [INFO] [stdout] 2720 | 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:2899:4 [INFO] [stdout] | [INFO] [stdout] 2899 | 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:2929:4 [INFO] [stdout] | [INFO] [stdout] 2929 | 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:2981:4 [INFO] [stdout] | [INFO] [stdout] 2981 | 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:2998:4 [INFO] [stdout] | [INFO] [stdout] 2998 | 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:3031:4 [INFO] [stdout] | [INFO] [stdout] 3031 | 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:3133:4 [INFO] [stdout] | [INFO] [stdout] 3133 | 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:3180:4 [INFO] [stdout] | [INFO] [stdout] 3180 | 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:3298:4 [INFO] [stdout] | [INFO] [stdout] 3298 | 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:3378:4 [INFO] [stdout] | [INFO] [stdout] 3378 | 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: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | 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:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | 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:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbTask` is never constructed [INFO] [stdout] --> src/db.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct DbTask { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | 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:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | 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:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | 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:296:14 [INFO] [stdout] | [INFO] [stdout] 296 | 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:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | 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:384:14 [INFO] [stdout] | [INFO] [stdout] 384 | 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:392:14 [INFO] [stdout] | [INFO] [stdout] 392 | 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:451:14 [INFO] [stdout] | [INFO] [stdout] 451 | 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:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | 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: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDays` is never constructed [INFO] [stdout] --> src/schedule.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct NDays { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:57:19 [INFO] [stdout] | [INFO] [stdout] 56 | impl NDays { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 57 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NWeeks` is never constructed [INFO] [stdout] --> src/schedule.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct NWeeks { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:88:19 [INFO] [stdout] | [INFO] [stdout] 87 | impl NWeeks { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 88 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Monthwise` is never constructed [INFO] [stdout] --> src/schedule.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct Monthwise { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 133 | impl Monthwise { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 134 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WeeksOfMonth` is never constructed [INFO] [stdout] --> src/schedule.rs:213:12 [INFO] [stdout] | [INFO] [stdout] 213 | pub struct WeeksOfMonth { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:228:19 [INFO] [stdout] | [INFO] [stdout] 227 | impl WeeksOfMonth { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 228 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DaysOfWeek` is never constructed [INFO] [stdout] --> src/schedule.rs:316:12 [INFO] [stdout] | [INFO] [stdout] 316 | pub struct DaysOfWeek { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `active` is never used [INFO] [stdout] --> src/schedule.rs:328:12 [INFO] [stdout] | [INFO] [stdout] 327 | impl DaysOfWeek { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 328 | pub fn active(&self, day: Weekday) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_day_range` is never used [INFO] [stdout] --> src/tasks.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | 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:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | 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:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct FormErrors { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_errors` is never used [INFO] [stdout] --> src/tasks.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl FormErrors { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 136 | 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:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | 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:265:4 [INFO] [stdout] | [INFO] [stdout] 265 | 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:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:297:10 [INFO] [stdout] | [INFO] [stdout] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:348:10 [INFO] [stdout] | [INFO] [stdout] 348 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 549 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:556:14 [INFO] [stdout] | [INFO] [stdout] 556 | 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:572:14 [INFO] [stdout] | [INFO] [stdout] 572 | 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:579:10 [INFO] [stdout] | [INFO] [stdout] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:818:4 [INFO] [stdout] | [INFO] [stdout] 818 | 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:836:12 [INFO] [stdout] | [INFO] [stdout] 836 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:842:14 [INFO] [stdout] | [INFO] [stdout] 842 | 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:857:14 [INFO] [stdout] | [INFO] [stdout] 857 | 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:864:10 [INFO] [stdout] | [INFO] [stdout] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1099:4 [INFO] [stdout] | [INFO] [stdout] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1163:4 [INFO] [stdout] | [INFO] [stdout] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1363:4 [INFO] [stdout] | [INFO] [stdout] 1363 | 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:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | 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:1555:4 [INFO] [stdout] | [INFO] [stdout] 1555 | 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:1569:4 [INFO] [stdout] | [INFO] [stdout] 1569 | 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:1588:4 [INFO] [stdout] | [INFO] [stdout] 1588 | 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:1627:12 [INFO] [stdout] | [INFO] [stdout] 1627 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1636:4 [INFO] [stdout] | [INFO] [stdout] 1636 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1640:4 [INFO] [stdout] | [INFO] [stdout] 1640 | 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:1644:4 [INFO] [stdout] | [INFO] [stdout] 1644 | 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:1649:10 [INFO] [stdout] | [INFO] [stdout] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:10 [INFO] [stdout] | [INFO] [stdout] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1709:10 [INFO] [stdout] | [INFO] [stdout] 1709 | 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:1731:10 [INFO] [stdout] | [INFO] [stdout] 1731 | 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:1754:12 [INFO] [stdout] | [INFO] [stdout] 1754 | 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:1851:12 [INFO] [stdout] | [INFO] [stdout] 1850 | impl TaskForm { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 1851 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2025 | 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:2055:10 [INFO] [stdout] | [INFO] [stdout] 2055 | 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:2109:10 [INFO] [stdout] | [INFO] [stdout] 2109 | 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:2138:10 [INFO] [stdout] | [INFO] [stdout] 2138 | 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:2144:10 [INFO] [stdout] | [INFO] [stdout] 2144 | 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:2172:10 [INFO] [stdout] | [INFO] [stdout] 2172 | 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:2178:4 [INFO] [stdout] | [INFO] [stdout] 2178 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2198:12 [INFO] [stdout] | [INFO] [stdout] 2198 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2218:12 [INFO] [stdout] | [INFO] [stdout] 2215 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2305 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2350 | 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:2378:8 [INFO] [stdout] | [INFO] [stdout] 2378 | 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:2385:8 [INFO] [stdout] | [INFO] [stdout] 2385 | 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:2401:8 [INFO] [stdout] | [INFO] [stdout] 2401 | 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:2408:8 [INFO] [stdout] | [INFO] [stdout] 2408 | 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:2424:8 [INFO] [stdout] | [INFO] [stdout] 2424 | 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:2432:8 [INFO] [stdout] | [INFO] [stdout] 2432 | 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:2442:4 [INFO] [stdout] | [INFO] [stdout] 2442 | 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:2454:4 [INFO] [stdout] | [INFO] [stdout] 2454 | 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:2471:10 [INFO] [stdout] | [INFO] [stdout] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2517:4 [INFO] [stdout] | [INFO] [stdout] 2517 | 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:2627:4 [INFO] [stdout] | [INFO] [stdout] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2661:4 [INFO] [stdout] | [INFO] [stdout] 2661 | 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:2668:4 [INFO] [stdout] | [INFO] [stdout] 2668 | 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:2680:4 [INFO] [stdout] | [INFO] [stdout] 2680 | 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:2692:4 [INFO] [stdout] | [INFO] [stdout] 2692 | 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:2704:4 [INFO] [stdout] | [INFO] [stdout] 2704 | 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:2716:8 [INFO] [stdout] | [INFO] [stdout] 2716 | 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:2720:4 [INFO] [stdout] | [INFO] [stdout] 2720 | 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:2899:4 [INFO] [stdout] | [INFO] [stdout] 2899 | 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:2929:4 [INFO] [stdout] | [INFO] [stdout] 2929 | 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:2981:4 [INFO] [stdout] | [INFO] [stdout] 2981 | 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:2998:4 [INFO] [stdout] | [INFO] [stdout] 2998 | 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:3031:4 [INFO] [stdout] | [INFO] [stdout] 3031 | 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:3133:4 [INFO] [stdout] | [INFO] [stdout] 3133 | 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:3180:4 [INFO] [stdout] | [INFO] [stdout] 3180 | 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:3298:4 [INFO] [stdout] | [INFO] [stdout] 3298 | 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:3378:4 [INFO] [stdout] | [INFO] [stdout] 3378 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s [INFO] running `Command { std: "docker" "inspect" "6b84c40687b3cc0ee25fa82995f26baa3939f9c3122510df41dc61c8f4423f89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b84c40687b3cc0ee25fa82995f26baa3939f9c3122510df41dc61c8f4423f89", kill_on_drop: false }` [INFO] [stdout] 6b84c40687b3cc0ee25fa82995f26baa3939f9c3122510df41dc61c8f4423f89 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 2a8009ce3e9b09affb9d98091391ce5babfcb38245bf2d80a628d24b3d10fa8c [INFO] running `Command { std: "docker" "start" "-a" "2a8009ce3e9b09affb9d98091391ce5babfcb38245bf2d80a628d24b3d10fa8c", kill_on_drop: false }` [INFO] [stderr] Compiling chores v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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: `NaiveTime` [INFO] [stdout] --> src/task.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [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] [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] [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] [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: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | 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:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | 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:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbTask` is never constructed [INFO] [stdout] --> src/db.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct DbTask { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | 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:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | 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:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | 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:296:14 [INFO] [stdout] | [INFO] [stdout] 296 | 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:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | 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:384:14 [INFO] [stdout] | [INFO] [stdout] 384 | 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:392:14 [INFO] [stdout] | [INFO] [stdout] 392 | 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:451:14 [INFO] [stdout] | [INFO] [stdout] 451 | 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:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | 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: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | 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:265:4 [INFO] [stdout] | [INFO] [stdout] 265 | 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:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:297:10 [INFO] [stdout] | [INFO] [stdout] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:348:10 [INFO] [stdout] | [INFO] [stdout] 348 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 549 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:556:14 [INFO] [stdout] | [INFO] [stdout] 556 | 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:572:14 [INFO] [stdout] | [INFO] [stdout] 572 | 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:579:10 [INFO] [stdout] | [INFO] [stdout] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:818:4 [INFO] [stdout] | [INFO] [stdout] 818 | 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:836:12 [INFO] [stdout] | [INFO] [stdout] 836 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:842:14 [INFO] [stdout] | [INFO] [stdout] 842 | 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:857:14 [INFO] [stdout] | [INFO] [stdout] 857 | 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:864:10 [INFO] [stdout] | [INFO] [stdout] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1099:4 [INFO] [stdout] | [INFO] [stdout] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1163:4 [INFO] [stdout] | [INFO] [stdout] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1363:4 [INFO] [stdout] | [INFO] [stdout] 1363 | 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:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | 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:1555:4 [INFO] [stdout] | [INFO] [stdout] 1555 | 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:1569:4 [INFO] [stdout] | [INFO] [stdout] 1569 | 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:1588:4 [INFO] [stdout] | [INFO] [stdout] 1588 | 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:1627:12 [INFO] [stdout] | [INFO] [stdout] 1627 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1636:4 [INFO] [stdout] | [INFO] [stdout] 1636 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1640:4 [INFO] [stdout] | [INFO] [stdout] 1640 | 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:1644:4 [INFO] [stdout] | [INFO] [stdout] 1644 | 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:1649:10 [INFO] [stdout] | [INFO] [stdout] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:10 [INFO] [stdout] | [INFO] [stdout] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1709:10 [INFO] [stdout] | [INFO] [stdout] 1709 | 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:1731:10 [INFO] [stdout] | [INFO] [stdout] 1731 | 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:1755:9 [INFO] [stdout] | [INFO] [stdout] 1754 | pub struct TaskForm { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 1755 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1756 | pub details: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1759 | pub n_days_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1760 | #[serde(default)] [INFO] [stdout] 1761 | pub n_days_time: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1762 | #[serde(default)] [INFO] [stdout] 1763 | pub n_weeks_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1764 | #[serde(default)] [INFO] [stdout] 1765 | pub n_weeks_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1766 | #[serde(default)] [INFO] [stdout] 1767 | pub dow_sun: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1768 | #[serde(default)] [INFO] [stdout] 1769 | pub dow_mon: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1770 | #[serde(default)] [INFO] [stdout] 1771 | pub dow_tue: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1772 | #[serde(default)] [INFO] [stdout] 1773 | pub dow_wed: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1774 | #[serde(default)] [INFO] [stdout] 1775 | pub dow_thu: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1776 | #[serde(default)] [INFO] [stdout] 1777 | pub dow_fri: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1778 | #[serde(default)] [INFO] [stdout] 1779 | pub dow_sat: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1783 | pub monthwise_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1784 | #[serde(default)] [INFO] [stdout] 1785 | pub wom_week_1: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1786 | #[serde(default)] [INFO] [stdout] 1787 | pub wom_week_2: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1788 | #[serde(default)] [INFO] [stdout] 1789 | pub wom_week_3: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1790 | #[serde(default)] [INFO] [stdout] 1791 | pub wom_week_4: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1792 | #[serde(default)] [INFO] [stdout] 1793 | pub wom_week_5: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1794 | #[serde(default)] [INFO] [stdout] 1795 | pub wom_dow_sun: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1796 | #[serde(default)] [INFO] [stdout] 1797 | pub wom_dow_mon: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1798 | #[serde(default)] [INFO] [stdout] 1799 | pub wom_dow_tue: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1800 | #[serde(default)] [INFO] [stdout] 1801 | pub wom_dow_wed: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1802 | #[serde(default)] [INFO] [stdout] 1803 | pub wom_dow_thu: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1804 | #[serde(default)] [INFO] [stdout] 1805 | pub wom_dow_fri: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1806 | #[serde(default)] [INFO] [stdout] 1807 | pub wom_dow_sat: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1808 | #[serde(default)] [INFO] [stdout] 1809 | pub wom_time: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1810 | #[serde(default)] [INFO] [stdout] 1811 | pub cm_month_jan: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1812 | #[serde(default)] [INFO] [stdout] 1813 | pub cm_month_feb: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1814 | #[serde(default)] [INFO] [stdout] 1815 | pub cm_month_mar: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1816 | #[serde(default)] [INFO] [stdout] 1817 | pub cm_month_apr: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1818 | #[serde(default)] [INFO] [stdout] 1819 | pub cm_month_may: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1820 | #[serde(default)] [INFO] [stdout] 1821 | pub cm_month_jun: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1822 | #[serde(default)] [INFO] [stdout] 1823 | pub cm_month_jul: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1824 | #[serde(default)] [INFO] [stdout] 1825 | pub cm_month_aug: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1826 | #[serde(default)] [INFO] [stdout] 1827 | pub cm_month_sep: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1828 | #[serde(default)] [INFO] [stdout] 1829 | pub cm_month_oct: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1830 | #[serde(default)] [INFO] [stdout] 1831 | pub cm_month_nov: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1832 | #[serde(default)] [INFO] [stdout] 1833 | pub cm_month_dec: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1837 | pub cm_time: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1838 | #[serde(default)] [INFO] [stdout] 1839 | pub once_now: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1840 | #[serde(default)] [INFO] [stdout] 1841 | pub once_date: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1842 | #[serde(default)] [INFO] [stdout] 1843 | pub once_time: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1844 | #[serde(default)] [INFO] [stdout] 1845 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1846 | #[serde(default)] [INFO] [stdout] 1847 | 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:1851:12 [INFO] [stdout] | [INFO] [stdout] 1850 | impl TaskForm { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 1851 | 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:2055:10 [INFO] [stdout] | [INFO] [stdout] 2055 | 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:2109:10 [INFO] [stdout] | [INFO] [stdout] 2109 | 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:2138:10 [INFO] [stdout] | [INFO] [stdout] 2138 | 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:2144:10 [INFO] [stdout] | [INFO] [stdout] 2144 | 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:2172:10 [INFO] [stdout] | [INFO] [stdout] 2172 | 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:2178:4 [INFO] [stdout] | [INFO] [stdout] 2178 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2198:12 [INFO] [stdout] | [INFO] [stdout] 2198 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2218:12 [INFO] [stdout] | [INFO] [stdout] 2215 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2305 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2350 | 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:2424:8 [INFO] [stdout] | [INFO] [stdout] 2424 | 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:2432:8 [INFO] [stdout] | [INFO] [stdout] 2432 | 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:2442:4 [INFO] [stdout] | [INFO] [stdout] 2442 | 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:2454:4 [INFO] [stdout] | [INFO] [stdout] 2454 | 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:2471:10 [INFO] [stdout] | [INFO] [stdout] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2517:4 [INFO] [stdout] | [INFO] [stdout] 2517 | 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:2627:4 [INFO] [stdout] | [INFO] [stdout] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2661:4 [INFO] [stdout] | [INFO] [stdout] 2661 | 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:2668:4 [INFO] [stdout] | [INFO] [stdout] 2668 | 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:2680:4 [INFO] [stdout] | [INFO] [stdout] 2680 | 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:2692:4 [INFO] [stdout] | [INFO] [stdout] 2692 | 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:2704:4 [INFO] [stdout] | [INFO] [stdout] 2704 | 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:2716:8 [INFO] [stdout] | [INFO] [stdout] 2716 | 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:2720:4 [INFO] [stdout] | [INFO] [stdout] 2720 | 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:2899:4 [INFO] [stdout] | [INFO] [stdout] 2899 | 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:2929:4 [INFO] [stdout] | [INFO] [stdout] 2929 | 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:2981:4 [INFO] [stdout] | [INFO] [stdout] 2981 | 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:2998:4 [INFO] [stdout] | [INFO] [stdout] 2998 | 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:3031:4 [INFO] [stdout] | [INFO] [stdout] 3031 | 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:3133:4 [INFO] [stdout] | [INFO] [stdout] 3133 | 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:3180:4 [INFO] [stdout] | [INFO] [stdout] 3180 | 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:3298:4 [INFO] [stdout] | [INFO] [stdout] 3298 | 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:3378:4 [INFO] [stdout] | [INFO] [stdout] 3378 | 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] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/db.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 155 | 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] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [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: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | 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:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | 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:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/db.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct DbTask { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 193 | pub id: i64, [INFO] [stdout] | ^^ [INFO] [stdout] 194 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 195 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 196 | pub schedule_id: i64, [INFO] [stdout] 197 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 198 | pub completeable: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 199 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 200 | 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:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | 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:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | 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:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | 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:296:14 [INFO] [stdout] | [INFO] [stdout] 296 | 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:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | 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:384:14 [INFO] [stdout] | [INFO] [stdout] 384 | 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:392:14 [INFO] [stdout] | [INFO] [stdout] 392 | 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:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | 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: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ScheduleKind { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 34 | 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 `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | 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:265:4 [INFO] [stdout] | [INFO] [stdout] 265 | 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:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:297:10 [INFO] [stdout] | [INFO] [stdout] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:348:10 [INFO] [stdout] | [INFO] [stdout] 348 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 549 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:556:14 [INFO] [stdout] | [INFO] [stdout] 556 | 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:572:14 [INFO] [stdout] | [INFO] [stdout] 572 | 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:579:10 [INFO] [stdout] | [INFO] [stdout] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:818:4 [INFO] [stdout] | [INFO] [stdout] 818 | 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:836:12 [INFO] [stdout] | [INFO] [stdout] 836 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:842:14 [INFO] [stdout] | [INFO] [stdout] 842 | 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:857:14 [INFO] [stdout] | [INFO] [stdout] 857 | 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:864:10 [INFO] [stdout] | [INFO] [stdout] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1099:4 [INFO] [stdout] | [INFO] [stdout] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1163:4 [INFO] [stdout] | [INFO] [stdout] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1363:4 [INFO] [stdout] | [INFO] [stdout] 1363 | 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:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | 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:1555:4 [INFO] [stdout] | [INFO] [stdout] 1555 | 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:1569:4 [INFO] [stdout] | [INFO] [stdout] 1569 | 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:1588:4 [INFO] [stdout] | [INFO] [stdout] 1588 | 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:1627:12 [INFO] [stdout] | [INFO] [stdout] 1627 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1636:4 [INFO] [stdout] | [INFO] [stdout] 1636 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1640:4 [INFO] [stdout] | [INFO] [stdout] 1640 | 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:1644:4 [INFO] [stdout] | [INFO] [stdout] 1644 | 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:1649:10 [INFO] [stdout] | [INFO] [stdout] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:10 [INFO] [stdout] | [INFO] [stdout] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1709:10 [INFO] [stdout] | [INFO] [stdout] 1709 | 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:1731:10 [INFO] [stdout] | [INFO] [stdout] 1731 | 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:1755:9 [INFO] [stdout] | [INFO] [stdout] 1754 | pub struct TaskForm { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 1755 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1756 | pub details: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1759 | pub n_days_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1760 | #[serde(default)] [INFO] [stdout] 1761 | pub n_days_time: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1762 | #[serde(default)] [INFO] [stdout] 1763 | pub n_weeks_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1764 | #[serde(default)] [INFO] [stdout] 1765 | pub n_weeks_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1766 | #[serde(default)] [INFO] [stdout] 1767 | pub dow_sun: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1768 | #[serde(default)] [INFO] [stdout] 1769 | pub dow_mon: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1770 | #[serde(default)] [INFO] [stdout] 1771 | pub dow_tue: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1772 | #[serde(default)] [INFO] [stdout] 1773 | pub dow_wed: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1774 | #[serde(default)] [INFO] [stdout] 1775 | pub dow_thu: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1776 | #[serde(default)] [INFO] [stdout] 1777 | pub dow_fri: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1778 | #[serde(default)] [INFO] [stdout] 1779 | pub dow_sat: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1783 | pub monthwise_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1784 | #[serde(default)] [INFO] [stdout] 1785 | pub wom_week_1: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1786 | #[serde(default)] [INFO] [stdout] 1787 | pub wom_week_2: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1788 | #[serde(default)] [INFO] [stdout] 1789 | pub wom_week_3: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1790 | #[serde(default)] [INFO] [stdout] 1791 | pub wom_week_4: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1792 | #[serde(default)] [INFO] [stdout] 1793 | pub wom_week_5: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1794 | #[serde(default)] [INFO] [stdout] 1795 | pub wom_dow_sun: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1796 | #[serde(default)] [INFO] [stdout] 1797 | pub wom_dow_mon: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1798 | #[serde(default)] [INFO] [stdout] 1799 | pub wom_dow_tue: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1800 | #[serde(default)] [INFO] [stdout] 1801 | pub wom_dow_wed: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1802 | #[serde(default)] [INFO] [stdout] 1803 | pub wom_dow_thu: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1804 | #[serde(default)] [INFO] [stdout] 1805 | pub wom_dow_fri: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1806 | #[serde(default)] [INFO] [stdout] 1807 | pub wom_dow_sat: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1808 | #[serde(default)] [INFO] [stdout] 1809 | pub wom_time: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1810 | #[serde(default)] [INFO] [stdout] 1811 | pub cm_month_jan: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1812 | #[serde(default)] [INFO] [stdout] 1813 | pub cm_month_feb: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1814 | #[serde(default)] [INFO] [stdout] 1815 | pub cm_month_mar: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1816 | #[serde(default)] [INFO] [stdout] 1817 | pub cm_month_apr: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1818 | #[serde(default)] [INFO] [stdout] 1819 | pub cm_month_may: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1820 | #[serde(default)] [INFO] [stdout] 1821 | pub cm_month_jun: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1822 | #[serde(default)] [INFO] [stdout] 1823 | pub cm_month_jul: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1824 | #[serde(default)] [INFO] [stdout] 1825 | pub cm_month_aug: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1826 | #[serde(default)] [INFO] [stdout] 1827 | pub cm_month_sep: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1828 | #[serde(default)] [INFO] [stdout] 1829 | pub cm_month_oct: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1830 | #[serde(default)] [INFO] [stdout] 1831 | pub cm_month_nov: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1832 | #[serde(default)] [INFO] [stdout] 1833 | pub cm_month_dec: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1837 | pub cm_time: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1838 | #[serde(default)] [INFO] [stdout] 1839 | pub once_now: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1840 | #[serde(default)] [INFO] [stdout] 1841 | pub once_date: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1842 | #[serde(default)] [INFO] [stdout] 1843 | pub once_time: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1844 | #[serde(default)] [INFO] [stdout] 1845 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1846 | #[serde(default)] [INFO] [stdout] 1847 | 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:1851:12 [INFO] [stdout] | [INFO] [stdout] 1850 | impl TaskForm { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 1851 | 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:2055:10 [INFO] [stdout] | [INFO] [stdout] 2055 | 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:2109:10 [INFO] [stdout] | [INFO] [stdout] 2109 | 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:2138:10 [INFO] [stdout] | [INFO] [stdout] 2138 | 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:2144:10 [INFO] [stdout] | [INFO] [stdout] 2144 | 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:2172:10 [INFO] [stdout] | [INFO] [stdout] 2172 | 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:2178:4 [INFO] [stdout] | [INFO] [stdout] 2178 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2218:12 [INFO] [stdout] | [INFO] [stdout] 2215 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2305 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2350 | 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:2424:8 [INFO] [stdout] | [INFO] [stdout] 2424 | 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:2432:8 [INFO] [stdout] | [INFO] [stdout] 2432 | 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:2442:4 [INFO] [stdout] | [INFO] [stdout] 2442 | 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:2454:4 [INFO] [stdout] | [INFO] [stdout] 2454 | 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:2471:10 [INFO] [stdout] | [INFO] [stdout] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2517:4 [INFO] [stdout] | [INFO] [stdout] 2517 | 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:2627:4 [INFO] [stdout] | [INFO] [stdout] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2661:4 [INFO] [stdout] | [INFO] [stdout] 2661 | 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:2668:4 [INFO] [stdout] | [INFO] [stdout] 2668 | 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:2680:4 [INFO] [stdout] | [INFO] [stdout] 2680 | 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:2692:4 [INFO] [stdout] | [INFO] [stdout] 2692 | 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:2704:4 [INFO] [stdout] | [INFO] [stdout] 2704 | 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:2716:8 [INFO] [stdout] | [INFO] [stdout] 2716 | 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:2720:4 [INFO] [stdout] | [INFO] [stdout] 2720 | 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:2899:4 [INFO] [stdout] | [INFO] [stdout] 2899 | 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:2929:4 [INFO] [stdout] | [INFO] [stdout] 2929 | 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:2981:4 [INFO] [stdout] | [INFO] [stdout] 2981 | 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:2998:4 [INFO] [stdout] | [INFO] [stdout] 2998 | 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:3031:4 [INFO] [stdout] | [INFO] [stdout] 3031 | 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:3133:4 [INFO] [stdout] | [INFO] [stdout] 3133 | 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:3180:4 [INFO] [stdout] | [INFO] [stdout] 3180 | 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:3298:4 [INFO] [stdout] | [INFO] [stdout] 3298 | 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:3378:4 [INFO] [stdout] | [INFO] [stdout] 3378 | 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: function `add_completion` is never used [INFO] [stdout] --> src/db.rs:94:14 [INFO] [stdout] | [INFO] [stdout] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_latest_completion` is never used [INFO] [stdout] --> src/db.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompletionRecord` is never constructed [INFO] [stdout] --> src/db.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CompletionRecord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_all_completions` is never used [INFO] [stdout] --> src/db.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | 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:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | 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:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct DbSchedule { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbTask` is never constructed [INFO] [stdout] --> src/db.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub struct DbTask { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DbCompletion` is never constructed [INFO] [stdout] --> src/db.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 204 | pub struct DbCompletion { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_time` is never used [INFO] [stdout] --> src/db.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | 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:218:4 [INFO] [stdout] | [INFO] [stdout] 218 | 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:229:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl DbSchedule { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 229 | 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:296:14 [INFO] [stdout] | [INFO] [stdout] 296 | 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:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | 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:384:14 [INFO] [stdout] | [INFO] [stdout] 384 | 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:392:14 [INFO] [stdout] | [INFO] [stdout] 392 | 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:451:14 [INFO] [stdout] | [INFO] [stdout] 451 | 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:663:14 [INFO] [stdout] | [INFO] [stdout] 663 | 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: struct `Schedule` is never constructed [INFO] [stdout] --> src/schedule.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Schedule { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Schedule { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleKind` is never used [INFO] [stdout] --> src/schedule.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ScheduleKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Once` is never constructed [INFO] [stdout] --> src/schedule.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Once { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Once { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CertainMonths` is never constructed [INFO] [stdout] --> src/schedule.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct CertainMonths { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `most_recent_due_date` is never used [INFO] [stdout] --> src/schedule.rs:274:19 [INFO] [stdout] | [INFO] [stdout] 273 | impl CertainMonths { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Task` is never constructed [INFO] [stdout] --> src/task.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Task { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Completion` is never constructed [INFO] [stdout] --> src/task.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Completion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stdout] --> src/task.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 17 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn last_completion(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DemoTasksMap` is never used [INFO] [stdout] --> src/tasks.rs:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `DEMO_TASKS` is never used [INFO] [stdout] --> src/tasks.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | 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:265:4 [INFO] [stdout] | [INFO] [stdout] 265 | 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:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn router() -> Router { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complete_task` is never used [INFO] [stdout] --> src/tasks.rs:286:10 [INFO] [stdout] | [INFO] [stdout] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_task` is never used [INFO] [stdout] --> src/tasks.rs:297:10 [INFO] [stdout] | [INFO] [stdout] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `restore_task` is never used [INFO] [stdout] --> src/tasks.rs:309:10 [INFO] [stdout] | [INFO] [stdout] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_show` is never used [INFO] [stdout] --> src/tasks.rs:321:10 [INFO] [stdout] | [INFO] [stdout] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_completion` is never used [INFO] [stdout] --> src/tasks.rs:348:10 [INFO] [stdout] | [INFO] [stdout] 348 | async fn delete_completion( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `homepage` is never used [INFO] [stdout] --> src/tasks.rs:361:14 [INFO] [stdout] | [INFO] [stdout] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyQuery` is never constructed [INFO] [stdout] --> src/tasks.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 549 | pub struct DailyQuery { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `daily_today` is never used [INFO] [stdout] --> src/tasks.rs:556:14 [INFO] [stdout] | [INFO] [stdout] 556 | 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:572:14 [INFO] [stdout] | [INFO] [stdout] 572 | 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:579:10 [INFO] [stdout] | [INFO] [stdout] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `days_in_month` is never used [INFO] [stdout] --> src/tasks.rs:818:4 [INFO] [stdout] | [INFO] [stdout] 818 | 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:836:12 [INFO] [stdout] | [INFO] [stdout] 836 | pub struct CalendarQuery { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calendar_today` is never used [INFO] [stdout] --> src/tasks.rs:842:14 [INFO] [stdout] | [INFO] [stdout] 842 | 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:857:14 [INFO] [stdout] | [INFO] [stdout] 857 | 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:864:10 [INFO] [stdout] | [INFO] [stdout] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_card` is never used [INFO] [stdout] --> src/tasks.rs:1099:4 [INFO] [stdout] | [INFO] [stdout] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_task_show_page` is never used [INFO] [stdout] --> src/tasks.rs:1163:4 [INFO] [stdout] | [INFO] [stdout] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_calendar` is never used [INFO] [stdout] --> src/tasks.rs:1363:4 [INFO] [stdout] | [INFO] [stdout] 1363 | 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:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | 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:1555:4 [INFO] [stdout] | [INFO] [stdout] 1555 | 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:1569:4 [INFO] [stdout] | [INFO] [stdout] 1569 | 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:1588:4 [INFO] [stdout] | [INFO] [stdout] 1588 | 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:1627:12 [INFO] [stdout] | [INFO] [stdout] 1627 | pub struct ListQuery { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_sort` is never used [INFO] [stdout] --> src/tasks.rs:1636:4 [INFO] [stdout] | [INFO] [stdout] 1636 | fn default_sort() -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_page` is never used [INFO] [stdout] --> src/tasks.rs:1640:4 [INFO] [stdout] | [INFO] [stdout] 1640 | 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:1644:4 [INFO] [stdout] | [INFO] [stdout] 1644 | 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:1649:10 [INFO] [stdout] | [INFO] [stdout] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tasks_list` is never used [INFO] [stdout] --> src/tasks.rs:1704:10 [INFO] [stdout] | [INFO] [stdout] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `task_edit` is never used [INFO] [stdout] --> src/tasks.rs:1709:10 [INFO] [stdout] | [INFO] [stdout] 1709 | 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:1731:10 [INFO] [stdout] | [INFO] [stdout] 1731 | 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:1755:9 [INFO] [stdout] | [INFO] [stdout] 1754 | pub struct TaskForm { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 1755 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1756 | pub details: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1759 | pub n_days_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1760 | #[serde(default)] [INFO] [stdout] 1761 | pub n_days_time: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1762 | #[serde(default)] [INFO] [stdout] 1763 | pub n_weeks_count: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1764 | #[serde(default)] [INFO] [stdout] 1765 | pub n_weeks_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1766 | #[serde(default)] [INFO] [stdout] 1767 | pub dow_sun: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1768 | #[serde(default)] [INFO] [stdout] 1769 | pub dow_mon: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1770 | #[serde(default)] [INFO] [stdout] 1771 | pub dow_tue: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1772 | #[serde(default)] [INFO] [stdout] 1773 | pub dow_wed: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1774 | #[serde(default)] [INFO] [stdout] 1775 | pub dow_thu: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1776 | #[serde(default)] [INFO] [stdout] 1777 | pub dow_fri: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1778 | #[serde(default)] [INFO] [stdout] 1779 | pub dow_sat: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1783 | pub monthwise_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 1784 | #[serde(default)] [INFO] [stdout] 1785 | pub wom_week_1: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1786 | #[serde(default)] [INFO] [stdout] 1787 | pub wom_week_2: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1788 | #[serde(default)] [INFO] [stdout] 1789 | pub wom_week_3: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1790 | #[serde(default)] [INFO] [stdout] 1791 | pub wom_week_4: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1792 | #[serde(default)] [INFO] [stdout] 1793 | pub wom_week_5: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1794 | #[serde(default)] [INFO] [stdout] 1795 | pub wom_dow_sun: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1796 | #[serde(default)] [INFO] [stdout] 1797 | pub wom_dow_mon: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1798 | #[serde(default)] [INFO] [stdout] 1799 | pub wom_dow_tue: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1800 | #[serde(default)] [INFO] [stdout] 1801 | pub wom_dow_wed: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1802 | #[serde(default)] [INFO] [stdout] 1803 | pub wom_dow_thu: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1804 | #[serde(default)] [INFO] [stdout] 1805 | pub wom_dow_fri: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1806 | #[serde(default)] [INFO] [stdout] 1807 | pub wom_dow_sat: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 1808 | #[serde(default)] [INFO] [stdout] 1809 | pub wom_time: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1810 | #[serde(default)] [INFO] [stdout] 1811 | pub cm_month_jan: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1812 | #[serde(default)] [INFO] [stdout] 1813 | pub cm_month_feb: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1814 | #[serde(default)] [INFO] [stdout] 1815 | pub cm_month_mar: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1816 | #[serde(default)] [INFO] [stdout] 1817 | pub cm_month_apr: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1818 | #[serde(default)] [INFO] [stdout] 1819 | pub cm_month_may: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1820 | #[serde(default)] [INFO] [stdout] 1821 | pub cm_month_jun: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1822 | #[serde(default)] [INFO] [stdout] 1823 | pub cm_month_jul: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1824 | #[serde(default)] [INFO] [stdout] 1825 | pub cm_month_aug: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1826 | #[serde(default)] [INFO] [stdout] 1827 | pub cm_month_sep: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1828 | #[serde(default)] [INFO] [stdout] 1829 | pub cm_month_oct: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1830 | #[serde(default)] [INFO] [stdout] 1831 | pub cm_month_nov: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 1832 | #[serde(default)] [INFO] [stdout] 1833 | pub cm_month_dec: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1837 | pub cm_time: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 1838 | #[serde(default)] [INFO] [stdout] 1839 | pub once_now: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1840 | #[serde(default)] [INFO] [stdout] 1841 | pub once_date: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1842 | #[serde(default)] [INFO] [stdout] 1843 | pub once_time: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 1844 | #[serde(default)] [INFO] [stdout] 1845 | pub alerting_time: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 1846 | #[serde(default)] [INFO] [stdout] 1847 | 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:1851:12 [INFO] [stdout] | [INFO] [stdout] 1850 | impl TaskForm { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 1851 | 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:2055:10 [INFO] [stdout] | [INFO] [stdout] 2055 | 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:2109:10 [INFO] [stdout] | [INFO] [stdout] 2109 | 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:2138:10 [INFO] [stdout] | [INFO] [stdout] 2138 | 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:2144:10 [INFO] [stdout] | [INFO] [stdout] 2144 | 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:2172:10 [INFO] [stdout] | [INFO] [stdout] 2172 | 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:2178:4 [INFO] [stdout] | [INFO] [stdout] 2178 | fn create_default_task() -> DemoTask { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DemoTask` is never constructed [INFO] [stdout] --> src/tasks.rs:2198:12 [INFO] [stdout] | [INFO] [stdout] 2198 | pub struct DemoTask { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tasks.rs:2218:12 [INFO] [stdout] | [INFO] [stdout] 2215 | impl DemoTask { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2305 | pub fn is_due(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2350 | 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:2424:8 [INFO] [stdout] | [INFO] [stdout] 2424 | 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:2432:8 [INFO] [stdout] | [INFO] [stdout] 2432 | 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:2442:4 [INFO] [stdout] | [INFO] [stdout] 2442 | 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:2454:4 [INFO] [stdout] | [INFO] [stdout] 2454 | 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:2471:10 [INFO] [stdout] | [INFO] [stdout] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pagination` is never used [INFO] [stdout] --> src/tasks.rs:2517:4 [INFO] [stdout] | [INFO] [stdout] 2517 | 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:2627:4 [INFO] [stdout] | [INFO] [stdout] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `html_escape` is never used [INFO] [stdout] --> src/tasks.rs:2661:4 [INFO] [stdout] | [INFO] [stdout] 2661 | 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:2668:4 [INFO] [stdout] | [INFO] [stdout] 2668 | 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:2680:4 [INFO] [stdout] | [INFO] [stdout] 2680 | 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:2692:4 [INFO] [stdout] | [INFO] [stdout] 2692 | 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:2704:4 [INFO] [stdout] | [INFO] [stdout] 2704 | 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:2716:8 [INFO] [stdout] | [INFO] [stdout] 2716 | 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:2720:4 [INFO] [stdout] | [INFO] [stdout] 2720 | 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:2899:4 [INFO] [stdout] | [INFO] [stdout] 2899 | 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:2929:4 [INFO] [stdout] | [INFO] [stdout] 2929 | 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:2981:4 [INFO] [stdout] | [INFO] [stdout] 2981 | 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:2998:4 [INFO] [stdout] | [INFO] [stdout] 2998 | 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:3031:4 [INFO] [stdout] | [INFO] [stdout] 3031 | 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:3133:4 [INFO] [stdout] | [INFO] [stdout] 3133 | 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:3180:4 [INFO] [stdout] | [INFO] [stdout] 3180 | 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:3298:4 [INFO] [stdout] | [INFO] [stdout] 3298 | 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:3378:4 [INFO] [stdout] | [INFO] [stdout] 3378 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 8.76s [INFO] running `Command { std: "docker" "inspect" "2a8009ce3e9b09affb9d98091391ce5babfcb38245bf2d80a628d24b3d10fa8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2a8009ce3e9b09affb9d98091391ce5babfcb38245bf2d80a628d24b3d10fa8c", kill_on_drop: false }` [INFO] [stdout] 2a8009ce3e9b09affb9d98091391ce5babfcb38245bf2d80a628d24b3d10fa8c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 57a3607ffb54e9e61e7ee902144c862cd24615eec02e5f889a0e358da695fdf0 [INFO] running `Command { std: "docker" "start" "-a" "57a3607ffb54e9e61e7ee902144c862cd24615eec02e5f889a0e358da695fdf0", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `NaiveTime` [INFO] [stderr] --> src/task.rs:1:34 [INFO] [stderr] | [INFO] [stderr] 1 | use chrono::{DateTime, Duration, NaiveTime, TimeDelta, Utc}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Row` [INFO] [stderr] --> src/db.rs:3:41 [INFO] [stderr] | [INFO] [stderr] 3 | use sqlx::{sqlite::SqlitePool, FromRow, Row}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: static `APP_TIMEZONE` is never used [INFO] [stderr] --> src/config.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | static APP_TIMEZONE: OnceLock = OnceLock::new(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: static `TOUCH_MODE` is never used [INFO] [stderr] --> src/config.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | static TOUCH_MODE: OnceLock = OnceLock::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `init_timezone` is never used [INFO] [stderr] --> src/config.rs:11:8 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn init_timezone(tz_str: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_timezone` is never used [INFO] [stderr] --> src/config.rs:23:8 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn get_timezone() -> Tz { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `init_touch_mode` is never used [INFO] [stderr] --> src/config.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn init_touch_mode(enabled: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_touch_mode` is never used [INFO] [stderr] --> src/config.rs:35:8 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn is_touch_mode() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `add_completion` is never used [INFO] [stderr] --> src/db.rs:94:14 [INFO] [stderr] | [INFO] [stderr] 94 | pub async fn add_completion(pool: &DbPool, task_id: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_latest_completion` is never used [INFO] [stderr] --> src/db.rs:105:14 [INFO] [stderr] | [INFO] [stderr] 105 | pub async fn get_latest_completion(pool: &DbPool, task_id: &str) -> Result>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CompletionRecord` is never constructed [INFO] [stderr] --> src/db.rs:117:12 [INFO] [stderr] | [INFO] [stderr] 117 | pub struct CompletionRecord { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_all_completions` is never used [INFO] [stderr] --> src/db.rs:123:14 [INFO] [stderr] | [INFO] [stderr] 123 | pub async fn get_all_completions(pool: &DbPool, task_id: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `delete_completion` is never used [INFO] [stderr] --> src/db.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | pub async fn delete_completion(pool: &DbPool, completion_id: i64) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DbSchedule` is never constructed [INFO] [stderr] --> src/db.rs:154:12 [INFO] [stderr] | [INFO] [stderr] 154 | pub struct DbSchedule { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DbTask` is never constructed [INFO] [stderr] --> src/db.rs:192:12 [INFO] [stderr] | [INFO] [stderr] 192 | pub struct DbTask { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DbCompletion` is never constructed [INFO] [stderr] --> src/db.rs:204:12 [INFO] [stderr] | [INFO] [stderr] 204 | pub struct DbCompletion { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_time` is never used [INFO] [stderr] --> src/db.rs:211:4 [INFO] [stderr] | [INFO] [stderr] 211 | fn parse_time(s: &Option) -> NaiveTime { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_int_list` is never used [INFO] [stderr] --> src/db.rs:218:4 [INFO] [stderr] | [INFO] [stderr] 218 | fn parse_int_list(s: &Option) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `to_schedule_parts` is never used [INFO] [stderr] --> src/db.rs:229:12 [INFO] [stderr] | [INFO] [stderr] 228 | impl DbSchedule { [INFO] [stderr] | --------------- method in this implementation [INFO] [stderr] 229 | pub fn to_schedule_parts(&self) -> (ScheduleKind, NDays, NWeeks, Monthwise, WeeksOfMonth, CertainMonths, Once) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_task` is never used [INFO] [stderr] --> src/db.rs:296:14 [INFO] [stderr] | [INFO] [stderr] 296 | pub async fn get_task(pool: &DbPool, task_id: i64) -> Result> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_all_tasks` is never used [INFO] [stderr] --> src/db.rs:339:14 [INFO] [stderr] | [INFO] [stderr] 339 | pub async fn get_all_tasks(pool: &DbPool) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_task_count` is never used [INFO] [stderr] --> src/db.rs:384:14 [INFO] [stderr] | [INFO] [stderr] 384 | pub async fn get_task_count(pool: &DbPool) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_tasks_paginated` is never used [INFO] [stderr] --> src/db.rs:392:14 [INFO] [stderr] | [INFO] [stderr] 392 | pub async fn get_tasks_paginated( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `save_task` is never used [INFO] [stderr] --> src/db.rs:451:14 [INFO] [stderr] | [INFO] [stderr] 451 | pub async fn save_task(pool: &DbPool, task: &DemoTask) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `set_task_deleted_at` is never used [INFO] [stderr] --> src/db.rs:663:14 [INFO] [stderr] | [INFO] [stderr] 663 | pub async fn set_task_deleted_at(pool: &DbPool, task_id: i64, deleted_at: Option>) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Schedule` is never constructed [INFO] [stderr] --> src/schedule.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct Schedule { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `most_recent_due_date` is never used [INFO] [stderr] --> src/schedule.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 14 | impl Schedule { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] 15 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `ScheduleKind` is never used [INFO] [stderr] --> src/schedule.rs:28:10 [INFO] [stderr] | [INFO] [stderr] 28 | pub enum ScheduleKind { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Once` is never constructed [INFO] [stderr] --> src/schedule.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 39 | pub struct Once { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `most_recent_due_date` is never used [INFO] [stderr] --> src/schedule.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 43 | impl Once { [INFO] [stderr] | --------- method in this implementation [INFO] [stderr] 44 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CertainMonths` is never constructed [INFO] [stderr] --> src/schedule.rs:221:12 [INFO] [stderr] | [INFO] [stderr] 221 | pub struct CertainMonths { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `most_recent_due_date` is never used [INFO] [stderr] --> src/schedule.rs:274:19 [INFO] [stderr] | [INFO] [stderr] 273 | impl CertainMonths { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] 274 | pub(crate) fn most_recent_due_date(&self) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Task` is never constructed [INFO] [stderr] --> src/task.rs:4:12 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Task { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Completion` is never constructed [INFO] [stderr] --> src/task.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct Completion { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `is_due`, `is_alerting`, `most_recent_due_date`, and `last_completion` are never used [INFO] [stderr] --> src/task.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl Task { [INFO] [stderr] | --------- methods in this implementation [INFO] [stderr] 17 | pub fn is_due(&self) -> bool { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | pub fn is_alerting(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 31 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 35 | pub fn last_completion(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `DemoTasksMap` is never used [INFO] [stderr] --> src/tasks.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | pub type DemoTasksMap = Arc>>; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `DEMO_TASKS` is never used [INFO] [stderr] --> src/tasks.rs:143:12 [INFO] [stderr] | [INFO] [stderr] 143 | pub static DEMO_TASKS: OnceLock = OnceLock::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_demo_tasks` is never used [INFO] [stderr] --> src/tasks.rs:145:8 [INFO] [stderr] | [INFO] [stderr] 145 | pub fn get_demo_tasks() -> &'static DemoTasksMap { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_demo_id` is never used [INFO] [stderr] --> src/tasks.rs:265:4 [INFO] [stderr] | [INFO] [stderr] 265 | fn is_demo_id(id: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `router` is never used [INFO] [stderr] --> src/tasks.rs:269:8 [INFO] [stderr] | [INFO] [stderr] 269 | pub fn router() -> Router { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `complete_task` is never used [INFO] [stderr] --> src/tasks.rs:286:10 [INFO] [stderr] | [INFO] [stderr] 286 | async fn complete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `delete_task` is never used [INFO] [stderr] --> src/tasks.rs:297:10 [INFO] [stderr] | [INFO] [stderr] 297 | async fn delete_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `restore_task` is never used [INFO] [stderr] --> src/tasks.rs:309:10 [INFO] [stderr] | [INFO] [stderr] 309 | async fn restore_task(State(pool): State, Path(id): Path) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `task_show` is never used [INFO] [stderr] --> src/tasks.rs:321:10 [INFO] [stderr] | [INFO] [stderr] 321 | async fn task_show(State(pool): State, Path(id): Path) -> Html { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `delete_completion` is never used [INFO] [stderr] --> src/tasks.rs:348:10 [INFO] [stderr] | [INFO] [stderr] 348 | async fn delete_completion( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `homepage` is never used [INFO] [stderr] --> src/tasks.rs:361:14 [INFO] [stderr] | [INFO] [stderr] 361 | pub async fn homepage(State(pool): State) -> Html { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DailyQuery` is never constructed [INFO] [stderr] --> src/tasks.rs:549:12 [INFO] [stderr] | [INFO] [stderr] 549 | pub struct DailyQuery { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `daily_today` is never used [INFO] [stderr] --> src/tasks.rs:556:14 [INFO] [stderr] | [INFO] [stderr] 556 | pub async fn daily_today( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `daily_page` is never used [INFO] [stderr] --> src/tasks.rs:572:14 [INFO] [stderr] | [INFO] [stderr] 572 | pub async fn daily_page( [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `daily_page_inner` is never used [INFO] [stderr] --> src/tasks.rs:579:10 [INFO] [stderr] | [INFO] [stderr] 579 | async fn daily_page_inner(pool: &DbPool, year: i32, month: u32, day: u32) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `days_in_month` is never used [INFO] [stderr] --> src/tasks.rs:818:4 [INFO] [stderr] | [INFO] [stderr] 818 | fn days_in_month(year: i32, month: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CalendarQuery` is never constructed [INFO] [stderr] --> src/tasks.rs:836:12 [INFO] [stderr] | [INFO] [stderr] 836 | pub struct CalendarQuery { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calendar_today` is never used [INFO] [stderr] --> src/tasks.rs:842:14 [INFO] [stderr] | [INFO] [stderr] 842 | pub async fn calendar_today( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calendar_page` is never used [INFO] [stderr] --> src/tasks.rs:857:14 [INFO] [stderr] | [INFO] [stderr] 857 | pub async fn calendar_page( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calendar_page_inner` is never used [INFO] [stderr] --> src/tasks.rs:864:10 [INFO] [stderr] | [INFO] [stderr] 864 | async fn calendar_page_inner(pool: &DbPool, year: i32, month: u32) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_card` is never used [INFO] [stderr] --> src/tasks.rs:1099:4 [INFO] [stderr] | [INFO] [stderr] 1099 | fn render_task_card(task: &DemoTask, status: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_show_page` is never used [INFO] [stderr] --> src/tasks.rs:1163:4 [INFO] [stderr] | [INFO] [stderr] 1163 | fn render_task_show_page(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_calendar` is never used [INFO] [stderr] --> src/tasks.rs:1363:4 [INFO] [stderr] | [INFO] [stderr] 1363 | fn render_calendar(task: &DemoTask, completions: &[db::CompletionRecord]) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_due_on_date` is never used [INFO] [stderr] --> src/tasks.rs:1504:4 [INFO] [stderr] | [INFO] [stderr] 1504 | fn is_due_on_date(task: &DemoTask, date: chrono::NaiveDate) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_due_time` is never used [INFO] [stderr] --> src/tasks.rs:1555:4 [INFO] [stderr] | [INFO] [stderr] 1555 | fn get_due_time(task: &DemoTask, _date: chrono::NaiveDate) -> chrono::NaiveTime { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_next_due_after` is never used [INFO] [stderr] --> src/tasks.rs:1569:4 [INFO] [stderr] | [INFO] [stderr] 1569 | fn find_next_due_after(task: &DemoTask, after: DateTime) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_completions_list` is never used [INFO] [stderr] --> src/tasks.rs:1588:4 [INFO] [stderr] | [INFO] [stderr] 1588 | fn render_completions_list(task_id: &str, completions: &[db::CompletionRecord]) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ListQuery` is never constructed [INFO] [stderr] --> src/tasks.rs:1627:12 [INFO] [stderr] | [INFO] [stderr] 1627 | pub struct ListQuery { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `default_sort` is never used [INFO] [stderr] --> src/tasks.rs:1636:4 [INFO] [stderr] | [INFO] [stderr] 1636 | fn default_sort() -> String { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `default_page` is never used [INFO] [stderr] --> src/tasks.rs:1640:4 [INFO] [stderr] | [INFO] [stderr] 1640 | fn default_page() -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `default_per_page` is never used [INFO] [stderr] --> src/tasks.rs:1644:4 [INFO] [stderr] | [INFO] [stderr] 1644 | fn default_per_page() -> i64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `tasks_index` is never used [INFO] [stderr] --> src/tasks.rs:1649:10 [INFO] [stderr] | [INFO] [stderr] 1649 | async fn tasks_index(State(pool): State, Query(query): Query) -> Html { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `tasks_list` is never used [INFO] [stderr] --> src/tasks.rs:1704:10 [INFO] [stderr] | [INFO] [stderr] 1704 | async fn tasks_list(State(pool): State, Query(query): Query) -> Html { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `task_edit` is never used [INFO] [stderr] --> src/tasks.rs:1709:10 [INFO] [stderr] | [INFO] [stderr] 1709 | async fn task_edit(State(pool): State, Path(id): Path) -> Html { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `task_edit_modal` is never used [INFO] [stderr] --> src/tasks.rs:1731:10 [INFO] [stderr] | [INFO] [stderr] 1731 | async fn task_edit_modal(State(pool): State, Path(id): Path) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/tasks.rs:1755:9 [INFO] [stderr] | [INFO] [stderr] 1754 | pub struct TaskForm { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 1755 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 1756 | pub details: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1759 | pub n_days_count: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1760 | #[serde(default)] [INFO] [stderr] 1761 | pub n_days_time: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1762 | #[serde(default)] [INFO] [stderr] 1763 | pub n_weeks_count: Option, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 1764 | #[serde(default)] [INFO] [stderr] 1765 | pub n_weeks_time: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1766 | #[serde(default)] [INFO] [stderr] 1767 | pub dow_sun: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1768 | #[serde(default)] [INFO] [stderr] 1769 | pub dow_mon: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1770 | #[serde(default)] [INFO] [stderr] 1771 | pub dow_tue: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1772 | #[serde(default)] [INFO] [stderr] 1773 | pub dow_wed: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1774 | #[serde(default)] [INFO] [stderr] 1775 | pub dow_thu: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1776 | #[serde(default)] [INFO] [stderr] 1777 | pub dow_fri: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1778 | #[serde(default)] [INFO] [stderr] 1779 | pub dow_sat: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1783 | pub monthwise_time: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 1784 | #[serde(default)] [INFO] [stderr] 1785 | pub wom_week_1: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 1786 | #[serde(default)] [INFO] [stderr] 1787 | pub wom_week_2: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 1788 | #[serde(default)] [INFO] [stderr] 1789 | pub wom_week_3: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 1790 | #[serde(default)] [INFO] [stderr] 1791 | pub wom_week_4: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 1792 | #[serde(default)] [INFO] [stderr] 1793 | pub wom_week_5: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 1794 | #[serde(default)] [INFO] [stderr] 1795 | pub wom_dow_sun: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1796 | #[serde(default)] [INFO] [stderr] 1797 | pub wom_dow_mon: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1798 | #[serde(default)] [INFO] [stderr] 1799 | pub wom_dow_tue: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1800 | #[serde(default)] [INFO] [stderr] 1801 | pub wom_dow_wed: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1802 | #[serde(default)] [INFO] [stderr] 1803 | pub wom_dow_thu: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1804 | #[serde(default)] [INFO] [stderr] 1805 | pub wom_dow_fri: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1806 | #[serde(default)] [INFO] [stderr] 1807 | pub wom_dow_sat: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 1808 | #[serde(default)] [INFO] [stderr] 1809 | pub wom_time: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 1810 | #[serde(default)] [INFO] [stderr] 1811 | pub cm_month_jan: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1812 | #[serde(default)] [INFO] [stderr] 1813 | pub cm_month_feb: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1814 | #[serde(default)] [INFO] [stderr] 1815 | pub cm_month_mar: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1816 | #[serde(default)] [INFO] [stderr] 1817 | pub cm_month_apr: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1818 | #[serde(default)] [INFO] [stderr] 1819 | pub cm_month_may: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1820 | #[serde(default)] [INFO] [stderr] 1821 | pub cm_month_jun: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1822 | #[serde(default)] [INFO] [stderr] 1823 | pub cm_month_jul: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1824 | #[serde(default)] [INFO] [stderr] 1825 | pub cm_month_aug: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1826 | #[serde(default)] [INFO] [stderr] 1827 | pub cm_month_sep: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1828 | #[serde(default)] [INFO] [stderr] 1829 | pub cm_month_oct: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1830 | #[serde(default)] [INFO] [stderr] 1831 | pub cm_month_nov: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 1832 | #[serde(default)] [INFO] [stderr] 1833 | pub cm_month_dec: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1837 | pub cm_time: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 1838 | #[serde(default)] [INFO] [stderr] 1839 | pub once_now: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 1840 | #[serde(default)] [INFO] [stderr] 1841 | pub once_date: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 1842 | #[serde(default)] [INFO] [stderr] 1843 | pub once_time: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 1844 | #[serde(default)] [INFO] [stderr] 1845 | pub alerting_time: Option, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 1846 | #[serde(default)] [INFO] [stderr] 1847 | pub completeable: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TaskForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `to_demo_task` is never used [INFO] [stderr] --> src/tasks.rs:1851:12 [INFO] [stderr] | [INFO] [stderr] 1850 | impl TaskForm { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] 1851 | pub fn to_demo_task(&self, id: &str, base_task: &DemoTask) -> DemoTask { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `save_task` is never used [INFO] [stderr] --> src/tasks.rs:2055:10 [INFO] [stderr] | [INFO] [stderr] 2055 | async fn save_task( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `change_schedule_type` is never used [INFO] [stderr] --> src/tasks.rs:2109:10 [INFO] [stderr] | [INFO] [stderr] 2109 | async fn change_schedule_type( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `new_task_modal` is never used [INFO] [stderr] --> src/tasks.rs:2138:10 [INFO] [stderr] | [INFO] [stderr] 2138 | async fn new_task_modal() -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_task` is never used [INFO] [stderr] --> src/tasks.rs:2144:10 [INFO] [stderr] | [INFO] [stderr] 2144 | async fn create_task(State(pool): State, Form(form): Form) -> Html { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `new_task_schedule_type` is never used [INFO] [stderr] --> src/tasks.rs:2172:10 [INFO] [stderr] | [INFO] [stderr] 2172 | async fn new_task_schedule_type(Form(form): Form) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_default_task` is never used [INFO] [stderr] --> src/tasks.rs:2178:4 [INFO] [stderr] | [INFO] [stderr] 2178 | fn create_default_task() -> DemoTask { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DemoTask` is never constructed [INFO] [stderr] --> src/tasks.rs:2198:12 [INFO] [stderr] | [INFO] [stderr] 2198 | pub struct DemoTask { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/tasks.rs:2218:12 [INFO] [stderr] | [INFO] [stderr] 2215 | impl DemoTask { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 2218 | pub fn next_due_date(&self) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2252 | fn is_distant_future(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2260 | pub fn is_once_completed(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2265 | pub fn time_as_readable_string(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2305 | pub fn is_due(&self) -> bool { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2314 | pub fn is_alerting(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2327 | pub fn is_inactive(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2350 | pub fn most_recent_due_date(&self) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `default_certain_months` is never used [INFO] [stderr] --> src/tasks.rs:2424:8 [INFO] [stderr] | [INFO] [stderr] 2424 | pub fn default_certain_months() -> CertainMonths { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `default_once` is never used [INFO] [stderr] --> src/tasks.rs:2432:8 [INFO] [stderr] | [INFO] [stderr] 2432 | pub fn default_once() -> Once { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_sort_select` is never used [INFO] [stderr] --> src/tasks.rs:2442:4 [INFO] [stderr] | [INFO] [stderr] 2442 | fn render_sort_select(current_sort: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_per_page_select` is never used [INFO] [stderr] --> src/tasks.rs:2454:4 [INFO] [stderr] | [INFO] [stderr] 2454 | fn render_per_page_select(current_per_page: i64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_list` is never used [INFO] [stderr] --> src/tasks.rs:2471:10 [INFO] [stderr] | [INFO] [stderr] 2471 | async fn render_task_list(pool: &DbPool, sort: &str, page: i64, per_page: i64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_pagination` is never used [INFO] [stderr] --> src/tasks.rs:2517:4 [INFO] [stderr] | [INFO] [stderr] 2517 | fn render_pagination(current_page: i64, total_pages: i64, per_page: i64, sort: &str, total_count: i64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_list_item` is never used [INFO] [stderr] --> src/tasks.rs:2627:4 [INFO] [stderr] | [INFO] [stderr] 2627 | fn render_task_list_item(task: &DemoTask) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `html_escape` is never used [INFO] [stderr] --> src/tasks.rs:2661:4 [INFO] [stderr] | [INFO] [stderr] 2661 | fn html_escape(s: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_modal` is never used [INFO] [stderr] --> src/tasks.rs:2668:4 [INFO] [stderr] | [INFO] [stderr] 2668 | fn render_task_modal(task: &DemoTask) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_modal_with_errors` is never used [INFO] [stderr] --> src/tasks.rs:2680:4 [INFO] [stderr] | [INFO] [stderr] 2680 | fn render_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_new_task_modal` is never used [INFO] [stderr] --> src/tasks.rs:2692:4 [INFO] [stderr] | [INFO] [stderr] 2692 | fn render_new_task_modal(task: &DemoTask) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_new_task_modal_with_errors` is never used [INFO] [stderr] --> src/tasks.rs:2704:4 [INFO] [stderr] | [INFO] [stderr] 2704 | fn render_new_task_modal_with_errors(task: &DemoTask, form: &TaskForm, errors: &FormErrors) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_editor` is never used [INFO] [stderr] --> src/tasks.rs:2716:8 [INFO] [stderr] | [INFO] [stderr] 2716 | pub fn render_task_editor(task: &DemoTask) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_task_editor_inner` is never used [INFO] [stderr] --> src/tasks.rs:2720:4 [INFO] [stderr] | [INFO] [stderr] 2720 | fn render_task_editor_inner(task: &DemoTask, is_modal: bool, is_new: bool, form: Option<&TaskForm>, errors: &FormErrors) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_schedule_type_select` is never used [INFO] [stderr] --> src/tasks.rs:2899:4 [INFO] [stderr] | [INFO] [stderr] 2899 | fn render_schedule_type_select( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_alerting_time_input` is never used [INFO] [stderr] --> src/tasks.rs:2929:4 [INFO] [stderr] | [INFO] [stderr] 2929 | fn render_alerting_time_input(task_id: &str, alerting_time: i64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `format_alerting_time` is never used [INFO] [stderr] --> src/tasks.rs:2981:4 [INFO] [stderr] | [INFO] [stderr] 2981 | fn format_alerting_time(minutes: i64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_n_days_editor` is never used [INFO] [stderr] --> src/tasks.rs:2998:4 [INFO] [stderr] | [INFO] [stderr] 2998 | fn render_n_days_editor(task_id: &str, n_days: &NDays) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_n_weeks_editor` is never used [INFO] [stderr] --> src/tasks.rs:3031:4 [INFO] [stderr] | [INFO] [stderr] 3031 | fn render_n_weeks_editor(task_id: &str, n_weeks: &NWeeks) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_monthwise_editor` is never used [INFO] [stderr] --> src/tasks.rs:3133:4 [INFO] [stderr] | [INFO] [stderr] 3133 | fn render_monthwise_editor(task_id: &str, monthwise: &Monthwise, raw_days: Option<&str>, error: &Option) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_weeks_of_month_editor` is never used [INFO] [stderr] --> src/tasks.rs:3180:4 [INFO] [stderr] | [INFO] [stderr] 3180 | fn render_weeks_of_month_editor(task_id: &str, weeks_of_month: &WeeksOfMonth) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_certain_months_editor` is never used [INFO] [stderr] --> src/tasks.rs:3298:4 [INFO] [stderr] | [INFO] [stderr] 3298 | fn render_certain_months_editor(task_id: &str, certain_months: &CertainMonths, raw_days: Option<&str>, error: &Option) -> ... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_once_editor` is never used [INFO] [stderr] --> src/tasks.rs:3378:4 [INFO] [stderr] | [INFO] [stderr] 3378 | fn render_once_editor(task_id: &str, once: &Once) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_timezone` is never used [INFO] [stderr] --> src/config.rs:23:8 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn get_timezone() -> Tz { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/db.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 192 | pub struct DbTask { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 193 | pub id: i64, [INFO] [stderr] | ^^ [INFO] [stderr] 194 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 195 | pub details: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 196 | pub schedule_id: i64, [INFO] [stderr] 197 | pub alerting_time: Option, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 198 | pub completeable: Option, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 199 | pub created_at: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 200 | pub deleted_at: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `DbTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Once` is never constructed [INFO] [stderr] --> src/schedule.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub enum ScheduleKind { [INFO] [stderr] | ------------ variant in this enum [INFO] [stderr] ... [INFO] [stderr] 34 | Once, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ScheduleKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `id` is never read [INFO] [stderr] --> src/db.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 154 | pub struct DbSchedule { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] 155 | pub id: i64, [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: `DbSchedule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `chores` (bin "backup" test) generated 103 warnings (run `cargo fix --bin "backup" -p chores --tests` to apply 1 suggestion) [INFO] [stderr] warning: `chores` (bin "clear" test) generated 103 warnings (103 duplicates) [INFO] [stderr] warning: `chores` (bin "seed" test) generated 95 warnings (92 duplicates) [INFO] [stderr] warning: `chores` (bin "chores" test) generated 11 warnings (10 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] [stderr] Running unittests src/backup.rs (/opt/rustwide/target/debug/build/chores/f9e78155f93ef48c/deps/backup-f9e78155f93ef48c) [INFO] [stdout] [INFO] [stdout] running 62 tests [INFO] [stdout] test schedule::tests::test_ndays_basic ... ok [INFO] [stdout] test schedule::tests::test_nweeks_multiple_days ... ok [INFO] [stdout] test schedule::tests::test_ndays_weekly ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_monthwise ... ok [INFO] [stdout] test schedule::tests::test_monthwise_multiple_days ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_days ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_weeks ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_weeks_of_month ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_second_and_fourth_friday ... ok [INFO] [stdout] test tasks::tests::test_form_errors_default ... ok [INFO] [stdout] test schedule::tests::test_days_of_week_active ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_certain_months_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_general_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_multiple_errors ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_monthwise_error ... ok [INFO] [stdout] test schedule::tests::test_ndays_single_day ... ok [INFO] [stdout] test schedule::tests::test_monthwise_end_of_month ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_first_monday ... ok [INFO] [stdout] test tasks::tests::test_format_complex_pattern ... ok [INFO] [stdout] test schedule::tests::test_nweeks_single_day ... ok [INFO] [stdout] test tasks::tests::test_format_multiple_ranges ... ok [INFO] [stdout] test tasks::tests::test_format_empty ... ok [INFO] [stdout] test tasks::tests::test_format_non_adjacent_days ... ok [INFO] [stdout] test tasks::tests::test_format_mixed ... ok [INFO] [stdout] test tasks::tests::test_format_simple_range ... ok [INFO] [stdout] test tasks::tests::test_format_single_day ... ok [INFO] [stdout] test schedule::tests::test_nweeks_every_other_week ... ok [INFO] [stdout] test tasks::tests::test_format_unsorted_input ... ok [INFO] [stdout] test tasks::tests::test_format_with_duplicates ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_multiple_weekdays ... ok [INFO] [stdout] test tasks::tests::test_parse_all_days ... ok [INFO] [stdout] test tasks::tests::test_parse_boundary_days ... ok [INFO] [stdout] test tasks::tests::test_format_efficiency ... ok [INFO] [stdout] test tasks::tests::test_format_preserves_order ... ok [INFO] [stdout] test tasks::tests::test_format_adjacent_pair ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_number ... ok [INFO] [stdout] test tasks::tests::test_parse_empty_input ... ok [INFO] [stdout] test tasks::tests::test_parse_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_parse_long_list ... ok [INFO] [stdout] test tasks::tests::test_parse_reversed_range ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day_range ... ok [INFO] [stdout] test tasks::tests::test_parse_mixed_days_and_ranges ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day ... ok [INFO] [stdout] test tasks::tests::test_parse_sorts_and_deduplicates ... ok [INFO] [stdout] test tasks::tests::test_parse_with_whitespace ... ok [INFO] [stdout] test tasks::tests::test_parse_trailing_comma ... ok [INFO] [stdout] test tasks::tests::test_parse_multiple_single_days ... ok [INFO] [stdout] test tasks::tests::test_parse_single_range ... ok [INFO] [stdout] test schedule::tests::test_monthwise_mid_month ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_simple ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_none ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_with_ranges ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_normalizes ... ok [INFO] [stdout] test schedule::tests::test_monthwise_single_day ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_non_monthwise_schedule ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_invalid_monthwise_format ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_empty ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_invalid_range ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_range_format ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/build/chores/c62f38ee54080643/deps/chores-c62f38ee54080643) [INFO] [stdout] test tasks::tests::test_format_all_days ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_valid_monthwise ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 62 tests [INFO] [stdout] test schedule::tests::test_days_of_week_active ... ok [INFO] [stdout] test schedule::tests::test_monthwise_end_of_month ... ok [INFO] [stdout] test schedule::tests::test_monthwise_single_day ... ok [INFO] [stdout] test schedule::tests::test_ndays_basic ... ok [INFO] [stdout] test schedule::tests::test_ndays_single_day ... ok [INFO] [stdout] test schedule::tests::test_ndays_weekly ... ok [INFO] [stdout] test schedule::tests::test_nweeks_multiple_days ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_monthwise ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_weeks ... ok [INFO] [stdout] test schedule::tests::test_monthwise_multiple_days ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_weeks_of_month ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_monthwise_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_multiple_errors ... ok [INFO] [stdout] test tasks::tests::test_format_all_days ... ok [INFO] [stdout] test tasks::tests::test_format_adjacent_pair ... ok [INFO] [stdout] test tasks::tests::test_format_efficiency ... ok [INFO] [stdout] test tasks::tests::test_format_empty ... ok [INFO] [stdout] test tasks::tests::test_format_mixed ... ok [INFO] [stdout] test tasks::tests::test_form_errors_default ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_multiple_weekdays ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_general_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_certain_months_error ... ok [INFO] [stdout] test tasks::tests::test_format_multiple_ranges ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_second_and_fourth_friday ... ok [INFO] [stdout] test tasks::tests::test_format_complex_pattern ... ok [INFO] [stdout] test tasks::tests::test_format_preserves_order ... ok [INFO] [stdout] test tasks::tests::test_format_single_day ... ok [INFO] [stdout] test tasks::tests::test_format_unsorted_input ... ok [INFO] [stdout] test tasks::tests::test_parse_all_days ... ok [INFO] [stdout] test tasks::tests::test_parse_boundary_days ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_number ... ok [INFO] [stdout] test tasks::tests::test_parse_empty_input ... ok [INFO] [stdout] test tasks::tests::test_format_simple_range ... ok [INFO] [stdout] test tasks::tests::test_format_with_duplicates ... ok [INFO] [stdout] test tasks::tests::test_parse_multiple_single_days ... ok [INFO] [stdout] test tasks::tests::test_parse_long_list ... ok [INFO] [stdout] test tasks::tests::test_parse_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day ... ok [INFO] [stdout] test tasks::tests::test_parse_mixed_days_and_ranges ... ok [INFO] [stdout] test tasks::tests::test_parse_reversed_range ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day_range ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_range_format ... ok [INFO] [stdout] test tasks::tests::test_parse_single_range ... ok [INFO] [stdout] test tasks::tests::test_parse_with_whitespace ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_normalizes ... ok [INFO] [stdout] test tasks::tests::test_parse_trailing_comma ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_invalid_monthwise_format ... ok [INFO] [stdout] test tasks::tests::test_parse_sorts_and_deduplicates ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_invalid_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_empty ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_non_monthwise_schedule ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_none ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_with_ranges ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_valid_monthwise ... ok [INFO] [stdout] test tasks::tests::test_format_non_adjacent_days ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_simple ... ok [INFO] [stdout] test schedule::tests::test_monthwise_mid_month ... ok [INFO] [stdout] test schedule::tests::test_nweeks_single_day ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_days ... ok [INFO] [stdout] test schedule::tests::test_nweeks_every_other_week ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_first_monday ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s [INFO] [stdout] [INFO] [stderr] Running unittests src/clear.rs (/opt/rustwide/target/debug/build/chores/d9434cf46d5eb77e/deps/clear-d9434cf46d5eb77e) [INFO] [stdout] [INFO] [stdout] running 62 tests [INFO] [stdout] test schedule::tests::test_days_of_week_active ... ok [INFO] [stdout] test schedule::tests::test_monthwise_multiple_days ... ok [INFO] [stdout] test schedule::tests::test_monthwise_mid_month ... ok [INFO] [stdout] test schedule::tests::test_monthwise_single_day ... ok [INFO] [stdout] test schedule::tests::test_ndays_basic ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_first_monday ... ok [INFO] [stdout] test schedule::tests::test_nweeks_single_day ... ok [INFO] [stdout] test schedule::tests::test_monthwise_end_of_month ... ok [INFO] [stdout] test schedule::tests::test_ndays_single_day ... ok [INFO] [stdout] test schedule::tests::test_nweeks_multiple_days ... ok [INFO] [stdout] test schedule::tests::test_nweeks_every_other_week ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_second_and_fourth_friday ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_days ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_monthwise ... ok [INFO] [stdout] test schedule::tests::test_ndays_weekly ... ok [INFO] [stdout] test tasks::tests::test_format_complex_pattern ... ok [INFO] [stdout] test tasks::tests::test_format_efficiency ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_monthwise_error ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_weeks ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_weeks_of_month ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_multiple_weekdays ... ok [INFO] [stdout] test tasks::tests::test_form_errors_default ... ok [INFO] [stdout] test tasks::tests::test_format_non_adjacent_days ... ok [INFO] [stdout] test tasks::tests::test_format_preserves_order ... ok [INFO] [stdout] test tasks::tests::test_format_simple_range ... ok [INFO] [stdout] test tasks::tests::test_format_single_day ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_general_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_multiple_errors ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_certain_months_error ... ok [INFO] [stdout] test tasks::tests::test_format_empty ... ok [INFO] [stdout] test tasks::tests::test_format_mixed ... ok [INFO] [stdout] test tasks::tests::test_format_multiple_ranges ... ok [INFO] [stdout] test tasks::tests::test_format_adjacent_pair ... ok [INFO] [stdout] test tasks::tests::test_parse_all_days ... ok [INFO] [stdout] test tasks::tests::test_parse_boundary_days ... ok [INFO] [stdout] test tasks::tests::test_parse_multiple_single_days ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_number ... ok [INFO] [stdout] test tasks::tests::test_parse_mixed_days_and_ranges ... ok [INFO] [stdout] test tasks::tests::test_parse_reversed_range ... ok [INFO] [stdout] test tasks::tests::test_parse_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_range_format ... ok [INFO] [stdout] test tasks::tests::test_parse_long_list ... ok [INFO] [stdout] test tasks::tests::test_format_with_duplicates ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day ... ok [INFO] [stdout] test tasks::tests::test_parse_empty_input ... ok [INFO] [stdout] test tasks::tests::test_format_all_days ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day_range ... ok [INFO] [stdout] test tasks::tests::test_parse_single_range ... ok [INFO] [stdout] test tasks::tests::test_parse_sorts_and_deduplicates ... ok [INFO] [stdout] test tasks::tests::test_parse_with_whitespace ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_normalizes ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_empty ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_simple ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_invalid_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_with_ranges ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_invalid_monthwise_format ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_non_monthwise_schedule ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_none ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_valid_monthwise ... ok [INFO] [stdout] test tasks::tests::test_format_unsorted_input ... ok [INFO] [stderr] Running unittests src/seed.rs (/opt/rustwide/target/debug/build/chores/8ec70c907acd58c1/deps/seed-8ec70c907acd58c1) [INFO] [stdout] test tasks::tests::test_parse_trailing_comma ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 62 tests [INFO] [stdout] test schedule::tests::test_monthwise_end_of_month ... ok [INFO] [stdout] test schedule::tests::test_monthwise_single_day ... ok [INFO] [stdout] test schedule::tests::test_monthwise_mid_month ... ok [INFO] [stdout] test schedule::tests::test_ndays_basic ... ok [INFO] [stdout] test schedule::tests::test_monthwise_multiple_days ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_first_monday ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_multiple_weekdays ... ok [INFO] [stdout] test schedule::tests::test_ndays_single_day ... ok [INFO] [stdout] test schedule::tests::test_ndays_weekly ... ok [INFO] [stdout] test schedule::tests::test_nweeks_every_other_week ... ok [INFO] [stdout] test schedule::tests::test_nweeks_multiple_days ... ok [INFO] [stdout] test schedule::tests::test_nweeks_single_day ... ok [INFO] [stdout] test schedule::tests::test_weeks_of_month_second_and_fourth_friday ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_monthwise ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_days ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_n_weeks ... ok [INFO] [stdout] test tasks::tests::test_demo_task_default_weeks_of_month ... ok [INFO] [stdout] test tasks::tests::test_form_errors_default ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_certain_months_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_general_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_monthwise_error ... ok [INFO] [stdout] test tasks::tests::test_form_errors_with_multiple_errors ... ok [INFO] [stdout] test tasks::tests::test_format_adjacent_pair ... ok [INFO] [stdout] test tasks::tests::test_format_all_days ... ok [INFO] [stdout] test tasks::tests::test_format_complex_pattern ... ok [INFO] [stdout] test tasks::tests::test_format_efficiency ... ok [INFO] [stdout] test tasks::tests::test_format_empty ... ok [INFO] [stdout] test tasks::tests::test_format_mixed ... ok [INFO] [stdout] test tasks::tests::test_format_multiple_ranges ... ok [INFO] [stdout] test tasks::tests::test_format_non_adjacent_days ... ok [INFO] [stdout] test tasks::tests::test_format_preserves_order ... ok [INFO] [stdout] test tasks::tests::test_format_simple_range ... ok [INFO] [stdout] test tasks::tests::test_format_single_day ... ok [INFO] [stdout] test tasks::tests::test_format_with_duplicates ... ok [INFO] [stdout] test tasks::tests::test_format_unsorted_input ... ok [INFO] [stdout] test schedule::tests::test_days_of_week_active ... ok [INFO] [stdout] test tasks::tests::test_parse_all_days ... ok [INFO] [stdout] test tasks::tests::test_parse_empty_input ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_number ... ok [INFO] [stdout] test tasks::tests::test_parse_invalid_range_format ... ok [INFO] [stdout] test tasks::tests::test_parse_long_list ... ok [INFO] [stdout] test tasks::tests::test_parse_mixed_days_and_ranges ... ok [INFO] [stdout] test tasks::tests::test_parse_multiple_single_days ... ok [INFO] [stdout] test tasks::tests::test_parse_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_parse_reversed_range ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day ... ok [INFO] [stdout] test tasks::tests::test_parse_boundary_days ... ok [INFO] [stdout] test tasks::tests::test_parse_single_day_range ... ok [INFO] [stdout] test tasks::tests::test_parse_single_range ... ok [INFO] [stdout] test tasks::tests::test_parse_trailing_comma ... ok [INFO] [stdout] test tasks::tests::test_parse_sorts_and_deduplicates ... ok [INFO] [stdout] test tasks::tests::test_parse_with_whitespace ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_normalizes ... ok [INFO] [stdout] test tasks::tests::test_roundtrip_simple ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_invalid_monthwise_format ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_invalid_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_empty ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_none ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_out_of_range ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_monthwise_with_ranges ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_non_monthwise_schedule ... ok [INFO] [stdout] test tasks::tests::test_task_form_validate_valid_monthwise ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "57a3607ffb54e9e61e7ee902144c862cd24615eec02e5f889a0e358da695fdf0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "57a3607ffb54e9e61e7ee902144c862cd24615eec02e5f889a0e358da695fdf0", kill_on_drop: false }` [INFO] [stdout] 57a3607ffb54e9e61e7ee902144c862cd24615eec02e5f889a0e358da695fdf0