[INFO] cloning repository https://github.com/hixb/blog-axum [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hixb/blog-axum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhixb%2Fblog-axum", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhixb%2Fblog-axum'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 920daab2c4b1ad70faea91e1d988bcecacf0c08d [INFO] testing hixb/blog-axum against try#8da20828b6ea601dfd8e2448cb50ace88876bd78 for pr-150933 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhixb%2Fblog-axum" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/hixb/blog-axum [INFO] finished tweaking git repo https://github.com/hixb/blog-axum [INFO] tweaked toml for git repo https://github.com/hixb/blog-axum written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hixb/blog-axum on toolchain 8da20828b6ea601dfd8e2448cb50ace88876bd78 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hixb/blog-axum 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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d85d1fdd4e9131f110650c78402f2d1e02e7f3266f2f7c863c3fd5c5dfdcf99b [INFO] running `Command { std: "docker" "start" "-a" "d85d1fdd4e9131f110650c78402f2d1e02e7f3266f2f7c863c3fd5c5dfdcf99b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d85d1fdd4e9131f110650c78402f2d1e02e7f3266f2f7c863c3fd5c5dfdcf99b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d85d1fdd4e9131f110650c78402f2d1e02e7f3266f2f7c863c3fd5c5dfdcf99b", kill_on_drop: false }` [INFO] [stdout] d85d1fdd4e9131f110650c78402f2d1e02e7f3266f2f7c863c3fd5c5dfdcf99b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1ef039f2147ed69e0c70271437579412d940307c4457ec7563d3c286abd36442 [INFO] running `Command { std: "docker" "start" "-a" "1ef039f2147ed69e0c70271437579412d940307c4457ec7563d3c286abd36442", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling find-msvc-tools v0.1.8 [INFO] [stderr] Compiling zmij v1.0.17 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling time-macros v0.2.26 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling zerocopy v0.8.35 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling cc v1.2.54 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling bigdecimal v0.4.10 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling webpki-roots v1.0.5 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling unicode-properties v0.1.4 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling whoami v1.6.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling ordered-float v4.6.0 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling inherent v1.0.13 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling sea-bae v0.2.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling aliasable v0.1.3 [INFO] [stderr] Compiling sea-orm-macros v1.1.19 [INFO] [stderr] Compiling blowfish v0.9.1 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling axum-macros v0.5.0 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling combine v4.6.7 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling uuid v1.20.0 [INFO] [stderr] Compiling ouroboros v0.18.5 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling xxhash-rust v0.8.15 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling time v0.3.46 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling validator_derive v0.20.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling arcstr v1.2.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling bcrypt v0.18.0 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling validator v0.20.0 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling redis v1.0.2 [INFO] [stderr] Compiling sea-query v0.32.7 [INFO] [stderr] Compiling simple_asn1 v0.6.3 [INFO] [stderr] Compiling jsonwebtoken v10.3.0 [INFO] [stderr] Compiling sqlx-core v0.8.6 [INFO] [stderr] Compiling sqlx-postgres v0.8.6 [INFO] [stderr] Compiling sqlx v0.8.6 [INFO] [stderr] Compiling sea-query-binder v0.7.0 [INFO] [stderr] Compiling sea-orm v1.1.19 [INFO] [stderr] Compiling shared v0.1.0 (/opt/rustwide/workdir/libs/shared) [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> libs/shared/src/utils.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PAGE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const DEFAULT_PAGE: u64 = 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PAGE_SIZE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const DEFAULT_PAGE_SIZE: u64 = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_PAGE_SIZE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const MAX_PAGE_SIZE: u64 = 100; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_DRAFT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const POST_STATUS_DRAFT: &str = "draft"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_PRIVATE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const POST_STATUS_PRIVATE: &str = "private"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_PUBLISHED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const POST_STATUS_PUBLISHED: &str = "published"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_ARCHIVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const POST_STATUS_ARCHIVED: &str = "archived"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_SUPER_ADMIN` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const ROLE_SUPER_ADMIN: &str = "super_admin"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_ADMIN` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const ROLE_ADMIN: &str = "admin"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_EDITOR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const ROLE_EDITOR: &str = "editor"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_AUTHOR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const ROLE_AUTHOR: &str = "author"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_USER` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const ROLE_USER: &str = "user"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_ACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const USER_STATUS_ACTIVE: &str = "active"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_INACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const USER_STATUS_INACTIVE: &str = "inactive"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_BANNED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const USER_STATUS_BANNED: &str = "banned"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_PENDING` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const COMMENT_STATUS_PENDING: &str = "pending"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_APPROVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const COMMENT_STATUS_APPROVED: &str = "approved"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_REJECTED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const COMMENT_STATUS_REJECTED: &str = "rejected"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_SPAM` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | pub const COMMENT_STATUS_SPAM: &str = "spam"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_ACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | pub const SERIES_STATUS_ACTIVE: &str = "active"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_COMPLETED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub const SERIES_STATUS_COMPLETED: &str = "completed"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_ARCHIVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | pub const SERIES_STATUS_ARCHIVED: &str = "archived"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_POST_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | pub const CACHE_KEY_POST_PREFIX: &str = "post:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_CATEGORY_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | pub const CACHE_KEY_CATEGORY_PREFIX: &str = "category:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_TAG_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | pub const CACHE_KEY_TAG_PREFIX: &str = "tag:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_USER_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const CACHE_KEY_USER_PREFIX: &str = "user:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_POPULAR_POSTS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub const CACHE_KEY_POPULAR_POSTS: &str = "popular_posts"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_HOT_TAGS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | pub const CACHE_KEY_HOT_TAGS: &str = "hot_tags"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_SHORT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const CACHE_TTL_SHORT: usize = 300; // 5 minutes [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_MEDIUM` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:45:11 [INFO] [stdout] | [INFO] [stdout] 45 | pub const CACHE_TTL_MEDIUM: usize = 1800; // 30 minutes [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_LONG` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const CACHE_TTL_LONG: usize = 3600; // 1 hour [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_VERY_LONG` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | pub const CACHE_TTL_VERY_LONG: usize = 86400; // 24 hours [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JWT_EXPIRATION_HOURS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:50:11 [INFO] [stdout] | [INFO] [stdout] 50 | pub const JWT_EXPIRATION_HOURS: u64 = 24; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RATE_LIMIT_REQUESTS_PER_MINUTE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | pub const RATE_LIMIT_REQUESTS_PER_MINUTE: u32 = 60; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RATE_LIMIT_REQUESTS_PER_HOUR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | pub const RATE_LIMIT_REQUESTS_PER_HOUR: u32 = 1000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TITLE_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | pub const MAX_TITLE_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_EXCERPT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub const MAX_EXCERPT_LENGTH: usize = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_CONTENT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | pub const MAX_CONTENT_LENGTH: usize = 1_000_000; // 1MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMMENT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MAX_COMMENT_LENGTH: usize = 5000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_BIO_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MAX_BIO_LENGTH: usize = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMILAR_POSTS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | pub const SIMILAR_POSTS_LIMIT: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POPULAR_POSTS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | pub const POPULAR_POSTS_LIMIT: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HOT_TAGS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | pub const HOT_TAGS_LIMIT: usize = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_LATEST` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const SORT_LATEST: &str = "latest"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_POPULAR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const SORT_POPULAR: &str = "popular"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_HOT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const SORT_HOT: &str = "hot"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_RECOMMENDED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:72:11 [INFO] [stdout] | [INFO] [stdout] 72 | pub const SORT_RECOMMENDED: &str = "recommended"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_TIME` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:75:11 [INFO] [stdout] | [INFO] [stdout] 75 | pub const COMMENT_SORT_TIME: &str = "time"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_HOT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:76:11 [INFO] [stdout] | [INFO] [stdout] 76 | pub const COMMENT_SORT_HOT: &str = "hot"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_LIKES` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 77 | pub const COMMENT_SORT_LIKES: &str = "likes"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password_bcrypt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn hash_password_bcrypt(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password_bcrypt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn verify_password_bcrypt(password: &str, hash: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn hash_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn verify_password(password: &str, hash: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slugify` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn slugify(text: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn truncate(text: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_excerpt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn extract_excerpt(content: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_reading_time` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn calculate_reading_time(content: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sanitize_html` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn sanitize_html(html: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s [INFO] running `Command { std: "docker" "inspect" "1ef039f2147ed69e0c70271437579412d940307c4457ec7563d3c286abd36442", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1ef039f2147ed69e0c70271437579412d940307c4457ec7563d3c286abd36442", kill_on_drop: false }` [INFO] [stdout] 1ef039f2147ed69e0c70271437579412d940307c4457ec7563d3c286abd36442 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9cfa4e116bbf917129442f9e2de99344e953eb8f405894deff55446bd5f98244 [INFO] running `Command { std: "docker" "start" "-a" "9cfa4e116bbf917129442f9e2de99344e953eb8f405894deff55446bd5f98244", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> libs/shared/src/utils.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PAGE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const DEFAULT_PAGE: u64 = 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PAGE_SIZE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const DEFAULT_PAGE_SIZE: u64 = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_PAGE_SIZE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const MAX_PAGE_SIZE: u64 = 100; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_DRAFT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const POST_STATUS_DRAFT: &str = "draft"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_PRIVATE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const POST_STATUS_PRIVATE: &str = "private"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_PUBLISHED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const POST_STATUS_PUBLISHED: &str = "published"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_ARCHIVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const POST_STATUS_ARCHIVED: &str = "archived"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_SUPER_ADMIN` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const ROLE_SUPER_ADMIN: &str = "super_admin"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_ADMIN` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const ROLE_ADMIN: &str = "admin"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_EDITOR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const ROLE_EDITOR: &str = "editor"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_AUTHOR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const ROLE_AUTHOR: &str = "author"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_USER` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const ROLE_USER: &str = "user"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_ACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const USER_STATUS_ACTIVE: &str = "active"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_INACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const USER_STATUS_INACTIVE: &str = "inactive"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_BANNED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const USER_STATUS_BANNED: &str = "banned"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_PENDING` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const COMMENT_STATUS_PENDING: &str = "pending"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_APPROVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const COMMENT_STATUS_APPROVED: &str = "approved"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_REJECTED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const COMMENT_STATUS_REJECTED: &str = "rejected"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_SPAM` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | pub const COMMENT_STATUS_SPAM: &str = "spam"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_ACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | pub const SERIES_STATUS_ACTIVE: &str = "active"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_COMPLETED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub const SERIES_STATUS_COMPLETED: &str = "completed"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_ARCHIVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | pub const SERIES_STATUS_ARCHIVED: &str = "archived"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_POST_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | pub const CACHE_KEY_POST_PREFIX: &str = "post:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_CATEGORY_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | pub const CACHE_KEY_CATEGORY_PREFIX: &str = "category:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_TAG_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | pub const CACHE_KEY_TAG_PREFIX: &str = "tag:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_USER_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const CACHE_KEY_USER_PREFIX: &str = "user:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_POPULAR_POSTS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub const CACHE_KEY_POPULAR_POSTS: &str = "popular_posts"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_HOT_TAGS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | pub const CACHE_KEY_HOT_TAGS: &str = "hot_tags"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_SHORT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const CACHE_TTL_SHORT: usize = 300; // 5 minutes [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_MEDIUM` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:45:11 [INFO] [stdout] | [INFO] [stdout] 45 | pub const CACHE_TTL_MEDIUM: usize = 1800; // 30 minutes [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_LONG` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const CACHE_TTL_LONG: usize = 3600; // 1 hour [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_VERY_LONG` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | pub const CACHE_TTL_VERY_LONG: usize = 86400; // 24 hours [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JWT_EXPIRATION_HOURS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:50:11 [INFO] [stdout] | [INFO] [stdout] 50 | pub const JWT_EXPIRATION_HOURS: u64 = 24; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RATE_LIMIT_REQUESTS_PER_MINUTE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | pub const RATE_LIMIT_REQUESTS_PER_MINUTE: u32 = 60; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RATE_LIMIT_REQUESTS_PER_HOUR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | pub const RATE_LIMIT_REQUESTS_PER_HOUR: u32 = 1000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TITLE_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | pub const MAX_TITLE_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_EXCERPT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub const MAX_EXCERPT_LENGTH: usize = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_CONTENT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | pub const MAX_CONTENT_LENGTH: usize = 1_000_000; // 1MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMMENT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MAX_COMMENT_LENGTH: usize = 5000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_BIO_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MAX_BIO_LENGTH: usize = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMILAR_POSTS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | pub const SIMILAR_POSTS_LIMIT: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POPULAR_POSTS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | pub const POPULAR_POSTS_LIMIT: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HOT_TAGS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | pub const HOT_TAGS_LIMIT: usize = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_LATEST` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const SORT_LATEST: &str = "latest"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_POPULAR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const SORT_POPULAR: &str = "popular"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_HOT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const SORT_HOT: &str = "hot"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_RECOMMENDED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:72:11 [INFO] [stdout] | [INFO] [stdout] 72 | pub const SORT_RECOMMENDED: &str = "recommended"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_TIME` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:75:11 [INFO] [stdout] | [INFO] [stdout] 75 | pub const COMMENT_SORT_TIME: &str = "time"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_HOT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:76:11 [INFO] [stdout] | [INFO] [stdout] 76 | pub const COMMENT_SORT_HOT: &str = "hot"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_LIKES` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 77 | pub const COMMENT_SORT_LIKES: &str = "likes"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password_bcrypt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn hash_password_bcrypt(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password_bcrypt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn verify_password_bcrypt(password: &str, hash: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn hash_password(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn verify_password(password: &str, hash: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slugify` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn slugify(text: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn truncate(text: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_excerpt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn extract_excerpt(content: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_reading_time` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn calculate_reading_time(content: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sanitize_html` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn sanitize_html(html: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling shared v0.1.0 (/opt/rustwide/workdir/libs/shared) [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> libs/shared/src/utils.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PAGE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const DEFAULT_PAGE: u64 = 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PAGE_SIZE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const DEFAULT_PAGE_SIZE: u64 = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_PAGE_SIZE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const MAX_PAGE_SIZE: u64 = 100; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_DRAFT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const POST_STATUS_DRAFT: &str = "draft"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_PRIVATE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const POST_STATUS_PRIVATE: &str = "private"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_PUBLISHED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const POST_STATUS_PUBLISHED: &str = "published"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POST_STATUS_ARCHIVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const POST_STATUS_ARCHIVED: &str = "archived"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_SUPER_ADMIN` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const ROLE_SUPER_ADMIN: &str = "super_admin"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_ADMIN` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const ROLE_ADMIN: &str = "admin"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_EDITOR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const ROLE_EDITOR: &str = "editor"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_AUTHOR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const ROLE_AUTHOR: &str = "author"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROLE_USER` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const ROLE_USER: &str = "user"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_ACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const USER_STATUS_ACTIVE: &str = "active"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_INACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const USER_STATUS_INACTIVE: &str = "inactive"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `USER_STATUS_BANNED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const USER_STATUS_BANNED: &str = "banned"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_PENDING` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const COMMENT_STATUS_PENDING: &str = "pending"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_APPROVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const COMMENT_STATUS_APPROVED: &str = "approved"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_REJECTED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const COMMENT_STATUS_REJECTED: &str = "rejected"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_STATUS_SPAM` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | pub const COMMENT_STATUS_SPAM: &str = "spam"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_ACTIVE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | pub const SERIES_STATUS_ACTIVE: &str = "active"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_COMPLETED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub const SERIES_STATUS_COMPLETED: &str = "completed"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIES_STATUS_ARCHIVED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | pub const SERIES_STATUS_ARCHIVED: &str = "archived"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_POST_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | pub const CACHE_KEY_POST_PREFIX: &str = "post:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_CATEGORY_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | pub const CACHE_KEY_CATEGORY_PREFIX: &str = "category:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_TAG_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | pub const CACHE_KEY_TAG_PREFIX: &str = "tag:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_USER_PREFIX` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const CACHE_KEY_USER_PREFIX: &str = "user:"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_POPULAR_POSTS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub const CACHE_KEY_POPULAR_POSTS: &str = "popular_posts"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_KEY_HOT_TAGS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | pub const CACHE_KEY_HOT_TAGS: &str = "hot_tags"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_SHORT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const CACHE_TTL_SHORT: usize = 300; // 5 minutes [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_MEDIUM` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:45:11 [INFO] [stdout] | [INFO] [stdout] 45 | pub const CACHE_TTL_MEDIUM: usize = 1800; // 30 minutes [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_LONG` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const CACHE_TTL_LONG: usize = 3600; // 1 hour [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CACHE_TTL_VERY_LONG` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | pub const CACHE_TTL_VERY_LONG: usize = 86400; // 24 hours [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JWT_EXPIRATION_HOURS` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:50:11 [INFO] [stdout] | [INFO] [stdout] 50 | pub const JWT_EXPIRATION_HOURS: u64 = 24; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RATE_LIMIT_REQUESTS_PER_MINUTE` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | pub const RATE_LIMIT_REQUESTS_PER_MINUTE: u32 = 60; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RATE_LIMIT_REQUESTS_PER_HOUR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | pub const RATE_LIMIT_REQUESTS_PER_HOUR: u32 = 1000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TITLE_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | pub const MAX_TITLE_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_EXCERPT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | pub const MAX_EXCERPT_LENGTH: usize = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_CONTENT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | pub const MAX_CONTENT_LENGTH: usize = 1_000_000; // 1MB [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMMENT_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MAX_COMMENT_LENGTH: usize = 5000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_BIO_LENGTH` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MAX_BIO_LENGTH: usize = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SIMILAR_POSTS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | pub const SIMILAR_POSTS_LIMIT: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `POPULAR_POSTS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | pub const POPULAR_POSTS_LIMIT: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HOT_TAGS_LIMIT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | pub const HOT_TAGS_LIMIT: usize = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_LATEST` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const SORT_LATEST: &str = "latest"; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_POPULAR` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const SORT_POPULAR: &str = "popular"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_HOT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const SORT_HOT: &str = "hot"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SORT_RECOMMENDED` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:72:11 [INFO] [stdout] | [INFO] [stdout] 72 | pub const SORT_RECOMMENDED: &str = "recommended"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_TIME` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:75:11 [INFO] [stdout] | [INFO] [stdout] 75 | pub const COMMENT_SORT_TIME: &str = "time"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_HOT` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:76:11 [INFO] [stdout] | [INFO] [stdout] 76 | pub const COMMENT_SORT_HOT: &str = "hot"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMMENT_SORT_LIKES` is never used [INFO] [stdout] --> libs/shared/src/constants.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 77 | pub const COMMENT_SORT_LIKES: &str = "likes"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_password_bcrypt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn hash_password_bcrypt(password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_password_bcrypt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn verify_password_bcrypt(password: &str, hash: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_excerpt` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn extract_excerpt(content: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sanitize_html` is never used [INFO] [stdout] --> libs/shared/src/utils.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn sanitize_html(html: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.73s [INFO] running `Command { std: "docker" "inspect" "9cfa4e116bbf917129442f9e2de99344e953eb8f405894deff55446bd5f98244", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9cfa4e116bbf917129442f9e2de99344e953eb8f405894deff55446bd5f98244", kill_on_drop: false }` [INFO] [stdout] 9cfa4e116bbf917129442f9e2de99344e953eb8f405894deff55446bd5f98244 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d12d3602c0da6fd96157f8131eda679525af390780537239a1899385c6fd3f39 [INFO] running `Command { std: "docker" "start" "-a" "d12d3602c0da6fd96157f8131eda679525af390780537239a1899385c6fd3f39", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::cmp::max` [INFO] [stderr] --> libs/shared/src/utils.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::cmp::max; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `DEFAULT_PAGE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | pub const DEFAULT_PAGE: u64 = 1; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `DEFAULT_PAGE_SIZE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:3:11 [INFO] [stderr] | [INFO] [stderr] 3 | pub const DEFAULT_PAGE_SIZE: u64 = 20; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_PAGE_SIZE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:4:11 [INFO] [stderr] | [INFO] [stderr] 4 | pub const MAX_PAGE_SIZE: u64 = 100; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `POST_STATUS_DRAFT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:7:11 [INFO] [stderr] | [INFO] [stderr] 7 | pub const POST_STATUS_DRAFT: &str = "draft"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `POST_STATUS_PRIVATE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | pub const POST_STATUS_PRIVATE: &str = "private"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `POST_STATUS_PUBLISHED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:9:11 [INFO] [stderr] | [INFO] [stderr] 9 | pub const POST_STATUS_PUBLISHED: &str = "published"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `POST_STATUS_ARCHIVED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:10:11 [INFO] [stderr] | [INFO] [stderr] 10 | pub const POST_STATUS_ARCHIVED: &str = "archived"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ROLE_SUPER_ADMIN` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:13:11 [INFO] [stderr] | [INFO] [stderr] 13 | pub const ROLE_SUPER_ADMIN: &str = "super_admin"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ROLE_ADMIN` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | pub const ROLE_ADMIN: &str = "admin"; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ROLE_EDITOR` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:15:11 [INFO] [stderr] | [INFO] [stderr] 15 | pub const ROLE_EDITOR: &str = "editor"; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ROLE_AUTHOR` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:16:11 [INFO] [stderr] | [INFO] [stderr] 16 | pub const ROLE_AUTHOR: &str = "author"; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ROLE_USER` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:17:11 [INFO] [stderr] | [INFO] [stderr] 17 | pub const ROLE_USER: &str = "user"; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `USER_STATUS_ACTIVE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | pub const USER_STATUS_ACTIVE: &str = "active"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `USER_STATUS_INACTIVE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:21:11 [INFO] [stderr] | [INFO] [stderr] 21 | pub const USER_STATUS_INACTIVE: &str = "inactive"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `USER_STATUS_BANNED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:22:11 [INFO] [stderr] | [INFO] [stderr] 22 | pub const USER_STATUS_BANNED: &str = "banned"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_STATUS_PENDING` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:25:11 [INFO] [stderr] | [INFO] [stderr] 25 | pub const COMMENT_STATUS_PENDING: &str = "pending"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_STATUS_APPROVED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:26:11 [INFO] [stderr] | [INFO] [stderr] 26 | pub const COMMENT_STATUS_APPROVED: &str = "approved"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_STATUS_REJECTED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:27:11 [INFO] [stderr] | [INFO] [stderr] 27 | pub const COMMENT_STATUS_REJECTED: &str = "rejected"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_STATUS_SPAM` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:28:11 [INFO] [stderr] | [INFO] [stderr] 28 | pub const COMMENT_STATUS_SPAM: &str = "spam"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SERIES_STATUS_ACTIVE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:31:11 [INFO] [stderr] | [INFO] [stderr] 31 | pub const SERIES_STATUS_ACTIVE: &str = "active"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SERIES_STATUS_COMPLETED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:32:11 [INFO] [stderr] | [INFO] [stderr] 32 | pub const SERIES_STATUS_COMPLETED: &str = "completed"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SERIES_STATUS_ARCHIVED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:33:11 [INFO] [stderr] | [INFO] [stderr] 33 | pub const SERIES_STATUS_ARCHIVED: &str = "archived"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_KEY_POST_PREFIX` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:36:11 [INFO] [stderr] | [INFO] [stderr] 36 | pub const CACHE_KEY_POST_PREFIX: &str = "post:"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_KEY_CATEGORY_PREFIX` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:37:11 [INFO] [stderr] | [INFO] [stderr] 37 | pub const CACHE_KEY_CATEGORY_PREFIX: &str = "category:"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_KEY_TAG_PREFIX` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:38:11 [INFO] [stderr] | [INFO] [stderr] 38 | pub const CACHE_KEY_TAG_PREFIX: &str = "tag:"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_KEY_USER_PREFIX` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:39:11 [INFO] [stderr] | [INFO] [stderr] 39 | pub const CACHE_KEY_USER_PREFIX: &str = "user:"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_KEY_POPULAR_POSTS` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:40:11 [INFO] [stderr] | [INFO] [stderr] 40 | pub const CACHE_KEY_POPULAR_POSTS: &str = "popular_posts"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_KEY_HOT_TAGS` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:41:11 [INFO] [stderr] | [INFO] [stderr] 41 | pub const CACHE_KEY_HOT_TAGS: &str = "hot_tags"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_TTL_SHORT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:44:11 [INFO] [stderr] | [INFO] [stderr] 44 | pub const CACHE_TTL_SHORT: usize = 300; // 5 minutes [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_TTL_MEDIUM` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:45:11 [INFO] [stderr] | [INFO] [stderr] 45 | pub const CACHE_TTL_MEDIUM: usize = 1800; // 30 minutes [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_TTL_LONG` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:46:11 [INFO] [stderr] | [INFO] [stderr] 46 | pub const CACHE_TTL_LONG: usize = 3600; // 1 hour [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `CACHE_TTL_VERY_LONG` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:47:11 [INFO] [stderr] | [INFO] [stderr] 47 | pub const CACHE_TTL_VERY_LONG: usize = 86400; // 24 hours [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `JWT_EXPIRATION_HOURS` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:50:11 [INFO] [stderr] | [INFO] [stderr] 50 | pub const JWT_EXPIRATION_HOURS: u64 = 24; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RATE_LIMIT_REQUESTS_PER_MINUTE` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:53:11 [INFO] [stderr] | [INFO] [stderr] 53 | pub const RATE_LIMIT_REQUESTS_PER_MINUTE: u32 = 60; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RATE_LIMIT_REQUESTS_PER_HOUR` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:54:11 [INFO] [stderr] | [INFO] [stderr] 54 | pub const RATE_LIMIT_REQUESTS_PER_HOUR: u32 = 1000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_TITLE_LENGTH` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:57:11 [INFO] [stderr] | [INFO] [stderr] 57 | pub const MAX_TITLE_LENGTH: usize = 200; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_EXCERPT_LENGTH` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:58:11 [INFO] [stderr] | [INFO] [stderr] 58 | pub const MAX_EXCERPT_LENGTH: usize = 500; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_CONTENT_LENGTH` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:59:11 [INFO] [stderr] | [INFO] [stderr] 59 | pub const MAX_CONTENT_LENGTH: usize = 1_000_000; // 1MB [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_COMMENT_LENGTH` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:60:11 [INFO] [stderr] | [INFO] [stderr] 60 | pub const MAX_COMMENT_LENGTH: usize = 5000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAX_BIO_LENGTH` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:61:11 [INFO] [stderr] | [INFO] [stderr] 61 | pub const MAX_BIO_LENGTH: usize = 500; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SIMILAR_POSTS_LIMIT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:64:11 [INFO] [stderr] | [INFO] [stderr] 64 | pub const SIMILAR_POSTS_LIMIT: usize = 5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `POPULAR_POSTS_LIMIT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:65:11 [INFO] [stderr] | [INFO] [stderr] 65 | pub const POPULAR_POSTS_LIMIT: usize = 10; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `HOT_TAGS_LIMIT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:66:11 [INFO] [stderr] | [INFO] [stderr] 66 | pub const HOT_TAGS_LIMIT: usize = 20; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SORT_LATEST` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:69:11 [INFO] [stderr] | [INFO] [stderr] 69 | pub const SORT_LATEST: &str = "latest"; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SORT_POPULAR` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:70:11 [INFO] [stderr] | [INFO] [stderr] 70 | pub const SORT_POPULAR: &str = "popular"; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SORT_HOT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:71:11 [INFO] [stderr] | [INFO] [stderr] 71 | pub const SORT_HOT: &str = "hot"; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SORT_RECOMMENDED` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:72:11 [INFO] [stderr] | [INFO] [stderr] 72 | pub const SORT_RECOMMENDED: &str = "recommended"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_SORT_TIME` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:75:11 [INFO] [stderr] | [INFO] [stderr] 75 | pub const COMMENT_SORT_TIME: &str = "time"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_SORT_HOT` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:76:11 [INFO] [stderr] | [INFO] [stderr] 76 | pub const COMMENT_SORT_HOT: &str = "hot"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `COMMENT_SORT_LIKES` is never used [INFO] [stderr] --> libs/shared/src/constants.rs:77:11 [INFO] [stderr] | [INFO] [stderr] 77 | pub const COMMENT_SORT_LIKES: &str = "likes"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `hash_password_bcrypt` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn hash_password_bcrypt(password: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `verify_password_bcrypt` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn verify_password_bcrypt(password: &str, hash: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `hash_password` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:19:8 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn hash_password(password: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `verify_password` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn verify_password(password: &str, hash: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `slugify` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:38:8 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn slugify(text: &str) -> String { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `truncate` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn truncate(text: &str, max_length: usize) -> String { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `extract_excerpt` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:63:8 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn extract_excerpt(content: &str, max_length: usize) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_reading_time` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:70:8 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn calculate_reading_time(content: &str) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `sanitize_html` is never used [INFO] [stderr] --> libs/shared/src/utils.rs:78:8 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn sanitize_html(html: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `shared` (lib) generated 60 warnings (run `cargo fix --lib -p shared` to apply 1 suggestion) [INFO] [stderr] warning: `shared` (lib test) generated 55 warnings (55 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shared-500ac50065a981d6) [INFO] [stdout] running 4 tests [INFO] [stdout] test utils::tests::test_slugify ... ok [INFO] [stdout] test utils::tests::test_reading_time ... ok [INFO] [stdout] test utils::tests::test_truncate ... ok [INFO] [stdout] test utils::tests::test_password_hashing ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.90s [INFO] [stdout] [INFO] [stderr] Doc-tests shared [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d12d3602c0da6fd96157f8131eda679525af390780537239a1899385c6fd3f39", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d12d3602c0da6fd96157f8131eda679525af390780537239a1899385c6fd3f39", kill_on_drop: false }` [INFO] [stdout] d12d3602c0da6fd96157f8131eda679525af390780537239a1899385c6fd3f39