[INFO] cloning repository https://github.com/mhieuhonda/ungdungtubi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mhieuhonda/ungdungtubi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmhieuhonda%2Fungdungtubi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmhieuhonda%2Fungdungtubi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] be881d7d3db86a32dde6acc5fc31e693605abfb5
[INFO] checking mhieuhonda/ungdungtubi against 67854e511de21d881bb16426996cd4259d44aa2e for pr-161154
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmhieuhonda%2Fungdungtubi" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mhieuhonda/ungdungtubi
[INFO] finished tweaking git repo https://github.com/mhieuhonda/ungdungtubi
[INFO] tweaked toml for git repo https://github.com/mhieuhonda/ungdungtubi written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mhieuhonda/ungdungtubi on toolchain 67854e511de21d881bb16426996cd4259d44aa2e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mhieuhonda/ungdungtubi 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" "+67854e511de21d881bb16426996cd4259d44aa2e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded axum-extra v0.10.3
[INFO] [stderr]   Downloaded redox_syscall v0.9.2
[INFO] [stderr]   Downloaded tokio-tungstenite v0.29.0
[INFO] [stderr]   Downloaded axum-macros v0.5.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92
[INFO] running `Command { std: "docker" "start" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92" "/opt/rustwide/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92" "/opt/rustwide/cargo-home/bin/cargo" "+67854e511de21d881bb16426996cd4259d44aa2e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling find-msvc-tools v0.1.10
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]     Checking futures-io v0.3.34
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]     Checking rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling tinyvec v1.12.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling cc v1.4.2
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]     Checking webpki-roots v1.0.9
[INFO] [stderr]    Compiling event-listener v5.4.2
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling uuid v1.24.0
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]     Checking aho-corasick v1.1.5
[INFO] [stderr]     Checking data-encoding v2.11.1
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]     Checking compression-codecs v0.4.38
[INFO] [stderr]    Compiling cookie v0.18.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]     Checking spin v0.9.9
[INFO] [stderr]     Checking time v0.3.55
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]    Compiling axum-macros v0.5.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]     Checking whoami v1.6.1
[INFO] [stderr]     Checking jiff-core v0.1.0
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking jiff v0.2.35
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking env_filter v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking thiserror v2.0.20
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking env_logger v0.11.11
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]     Checking tungstenite v0.29.0
[INFO] [stderr]     Checking rustls-webpki v0.103.14
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling askama_parser v0.14.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking multer v3.1.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling askama_derive v0.14.0
[INFO] [stderr]     Checking askama v0.14.0
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]     Checking hyper v1.11.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking async-compression v0.4.43
[INFO] [stderr]     Checking tokio-tungstenite v0.29.0
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking axum-extra v0.10.3
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking ungdungtubi v0.9.47 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `reward_text` is never read
[INFO] [stdout]    --> src/handlers/giai_doan_61_70.rs:506:27
[INFO] [stdout]     |
[INFO] [stdout] 506 |     let mut reward_text = String::new();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 514 |             reward_text = format!("+{} A (Niệm Lực)", prize_amount);
[INFO] [stdout]     |             ----------- `reward_text` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/handlers/giai_doan_61_70.rs:607:14
[INFO] [stdout]     |
[INFO] [stdout] 607 |     let Some(user) = get_user_from_session(&state.pool, &jar).await else {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward_text` is never read
[INFO] [stdout]    --> src/handlers/giai_doan_61_70.rs:506:27
[INFO] [stdout]     |
[INFO] [stdout] 506 |     let mut reward_text = String::new();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 514 |             reward_text = format!("+{} A (Niệm Lực)", prize_amount);
[INFO] [stdout]     |             ----------- `reward_text` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]    --> src/handlers/giai_doan_61_70.rs:607:14
[INFO] [stdout]     |
[INFO] [stdout] 607 |     let Some(user) = get_user_from_session(&state.pool, &jar).await else {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `detail` is never read
[INFO] [stdout]     --> src/db/mod.rs:1467:9
[INFO] [stdout]      |
[INFO] [stdout] 1459 | pub struct ForbiddenWordsResult {
[INFO] [stdout]      |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1467 |     pub detail: String,
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `ForbiddenWordsResult` has derived impls for the traits `Clone` and `Debug`, but these are 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: function `thuong_thanh` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:489:14
[INFO] [stdout]     |
[INFO] [stdout] 489 | pub async fn thuong_thanh(State(state): State<AppState>, jar: CookieJar) -> Response {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `placeholder_page` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:545:4
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn placeholder_page(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_user_menu_html` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:743:4
[INFO] [stdout]     |
[INFO] [stdout] 743 | fn render_user_menu_html(user: Option<&User>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_mobile_user_menu_html` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:802:4
[INFO] [stdout]     |
[INFO] [stdout] 802 | fn render_mobile_user_menu_html(user: Option<&User>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `admin_groups_placeholder` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1259:14
[INFO] [stdout]      |
[INFO] [stdout] 1259 | pub async fn admin_groups_placeholder(State(state): State<AppState>, jar: CookieJar) -> Response {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `admin_binh_luan_placeholder` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1328:14
[INFO] [stdout]      |
[INFO] [stdout] 1328 | pub async fn admin_binh_luan_placeholder(State(state): State<AppState>, jar: CookieJar) -> Response {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_admin_groups_list` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1418:10
[INFO] [stdout]      |
[INFO] [stdout] 1418 | async fn fetch_admin_groups_list(pool: &sqlx::PgPool, limit: i64) -> Vec<AdminGroupRow> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_admin_comments_list` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1460:10
[INFO] [stdout]      |
[INFO] [stdout] 1460 | async fn fetch_admin_comments_list(pool: &sqlx::PgPool, limit: i64) -> Vec<AdminCommentRow> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:1564:9
[INFO] [stdout]      |
[INFO] [stdout] 1562 | pub struct AdminThuongThanhTemplate {
[INFO] [stdout]      |            ------------------------ field in this struct
[INFO] [stdout] 1563 |     pub user: Option<User>,
[INFO] [stdout] 1564 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:1579:9
[INFO] [stdout]      |
[INFO] [stdout] 1577 | pub struct AdminThuongThanhCategoryTemplate {
[INFO] [stdout]      |            -------------------------------- field in this struct
[INFO] [stdout] 1578 |     pub user: Option<User>,
[INFO] [stdout] 1579 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stats` and `total_flagged` are never read
[INFO] [stdout]     --> src/handlers/admin.rs:2208:9
[INFO] [stdout]      |
[INFO] [stdout] 2206 | pub struct AdminBinhLuanTemplate {
[INFO] [stdout]      |            --------------------- fields in this struct
[INFO] [stdout] 2207 |     pub user: Option<User>,
[INFO] [stdout] 2208 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2216 |     pub total_flagged: usize,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:2224:9
[INFO] [stdout]      |
[INFO] [stdout] 2222 | pub struct AdminNhomTemplate {
[INFO] [stdout]      |            ----------------- field in this struct
[INFO] [stdout] 2223 |     pub user: Option<User>,
[INFO] [stdout] 2224 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:2238:9
[INFO] [stdout]      |
[INFO] [stdout] 2236 | pub struct AdminTuVungCamTemplate {
[INFO] [stdout]      |            ---------------------- field in this struct
[INFO] [stdout] 2237 |     pub user: Option<User>,
[INFO] [stdout] 2238 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_forbidden_words` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:2877:14
[INFO] [stdout]      |
[INFO] [stdout] 2877 | pub async fn check_forbidden_words(pool: &sqlx::PgPool, content: &str) -> Option<(String, String)> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_full` is never read
[INFO] [stdout]     --> src/handlers/giai_doan_61_70.rs:1371:9
[INFO] [stdout]      |
[INFO] [stdout] 1363 |     struct SessionRow {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1371 |         is_full: bool,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]     --> src/handlers/giai_doan_61_70.rs:1551:13
[INFO] [stdout]      |
[INFO] [stdout] 1550 |         struct BookmarkRow {
[INFO] [stdout]      |                ----------- field in this struct
[INFO] [stdout] 1551 |             id: i64,
[INFO] [stdout]      |             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_track` is never read
[INFO] [stdout]   --> src/handlers/nha_nhac.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct NhaNhacTemplate {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub last_track: Option<MusicTrack>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/handlers/reminders.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NotificationPreferences {
[INFO] [stdout]    |            ----------------------- field in this struct
[INFO] [stdout] 28 |     pub user_id: uuid::Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NotificationPreferences` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_balance` is never used
[INFO] [stdout]    --> src/handlers/tien_te.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | async fn update_balance(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `last_reset_at`, and `created_at` are never read
[INFO] [stdout]   --> src/handlers/tu_hoc_goals.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TuHocGoal {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 34 |     pub id: i64,
[INFO] [stdout] 35 |     pub user_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub last_reset_at: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 44 |     pub created_at: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TuHocGoal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `motivation`, `reviewed_by`, `reviewed_at`, `review_note`, and `updated_at` are never read
[INFO] [stdout]   --> src/handlers/tu_si.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct TuSiApplication {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 78 |     pub id: i64,
[INFO] [stdout] 79 |     pub user_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub motivation: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 83 |     pub status: String,
[INFO] [stdout] 84 |     pub reviewed_by: Option<Uuid>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 85 |     pub reviewed_at: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 86 |     pub review_note: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 87 |     pub created_at: DateTime<Utc>,
[INFO] [stdout] 88 |     pub updated_at: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TuSiApplication` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id` and `status` are never read
[INFO] [stdout]   --> src/handlers/tu_si.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct TuSiApplicationWithUser {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] 93 |     pub id: i64,
[INFO] [stdout] 94 |     pub user_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TuSiApplicationWithUser` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `icon`, `color`, and `as_str` are never used
[INFO] [stdout]   --> src/models/thuong_thanh.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ShopStore {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn icon(self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn color(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn as_str(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl TxType {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn as_str(self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_enum`, `price_display`, `payment_label`, `bank_info_struct`, `stock_label`, and `relative_time` are never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl ShopItem {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 181 |     /// Store enum.
[INFO] [stdout] 182 |     pub fn store_enum(&self) -> ShopStore {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn price_display(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn payment_label(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn bank_info_struct(&self) -> Option<BankInfo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn stock_label(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn relative_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `price_display`, `payment_label`, and `relative_time` are never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | impl ShopItemWithSeller {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn price_display(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn payment_label(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn relative_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartItem` is never constructed
[INFO] [stdout]    --> src/models/thuong_thanh.rs:415:12
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub struct CartItem {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transaction` is never constructed
[INFO] [stdout]    --> src/models/thuong_thanh.rs:449:12
[INFO] [stdout]     |
[INFO] [stdout] 449 | pub struct Transaction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `tx_type_enum` and `relative_time` are never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:464:12
[INFO] [stdout]     |
[INFO] [stdout] 463 | impl Transaction {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 464 |     pub fn tx_type_enum(&self) -> TxType {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 469 |     pub fn relative_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_vnd` is never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:582:8
[INFO] [stdout]     |
[INFO] [stdout] 582 | pub fn format_vnd(amount: i64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buyer_contact` is never read
[INFO] [stdout]    --> src/models/thuong_thanh.rs:640:9
[INFO] [stdout]     |
[INFO] [stdout] 601 | pub struct ItemCreateForm {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub buyer_contact: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ItemCreateForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `note` is never read
[INFO] [stdout]    --> src/models/thuong_thanh.rs:743:9
[INFO] [stdout]     |
[INFO] [stdout] 741 | pub struct CheckoutForm {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 742 |     /// Có thể thêm coupon sau này
[INFO] [stdout] 743 |     pub note: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CheckoutForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `detail` is never read
[INFO] [stdout]     --> src/db/mod.rs:1467:9
[INFO] [stdout]      |
[INFO] [stdout] 1459 | pub struct ForbiddenWordsResult {
[INFO] [stdout]      |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1467 |     pub detail: String,
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `ForbiddenWordsResult` has derived impls for the traits `Clone` and `Debug`, but these are 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: function `thuong_thanh` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:489:14
[INFO] [stdout]     |
[INFO] [stdout] 489 | pub async fn thuong_thanh(State(state): State<AppState>, jar: CookieJar) -> Response {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `placeholder_page` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:545:4
[INFO] [stdout]     |
[INFO] [stdout] 545 | fn placeholder_page(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_user_menu_html` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:743:4
[INFO] [stdout]     |
[INFO] [stdout] 743 | fn render_user_menu_html(user: Option<&User>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_mobile_user_menu_html` is never used
[INFO] [stdout]    --> src/handlers/mod.rs:802:4
[INFO] [stdout]     |
[INFO] [stdout] 802 | fn render_mobile_user_menu_html(user: Option<&User>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `admin_groups_placeholder` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1259:14
[INFO] [stdout]      |
[INFO] [stdout] 1259 | pub async fn admin_groups_placeholder(State(state): State<AppState>, jar: CookieJar) -> Response {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `admin_binh_luan_placeholder` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1328:14
[INFO] [stdout]      |
[INFO] [stdout] 1328 | pub async fn admin_binh_luan_placeholder(State(state): State<AppState>, jar: CookieJar) -> Response {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_admin_groups_list` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1418:10
[INFO] [stdout]      |
[INFO] [stdout] 1418 | async fn fetch_admin_groups_list(pool: &sqlx::PgPool, limit: i64) -> Vec<AdminGroupRow> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_admin_comments_list` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:1460:10
[INFO] [stdout]      |
[INFO] [stdout] 1460 | async fn fetch_admin_comments_list(pool: &sqlx::PgPool, limit: i64) -> Vec<AdminCommentRow> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:1564:9
[INFO] [stdout]      |
[INFO] [stdout] 1562 | pub struct AdminThuongThanhTemplate {
[INFO] [stdout]      |            ------------------------ field in this struct
[INFO] [stdout] 1563 |     pub user: Option<User>,
[INFO] [stdout] 1564 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:1579:9
[INFO] [stdout]      |
[INFO] [stdout] 1577 | pub struct AdminThuongThanhCategoryTemplate {
[INFO] [stdout]      |            -------------------------------- field in this struct
[INFO] [stdout] 1578 |     pub user: Option<User>,
[INFO] [stdout] 1579 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stats` and `total_flagged` are never read
[INFO] [stdout]     --> src/handlers/admin.rs:2208:9
[INFO] [stdout]      |
[INFO] [stdout] 2206 | pub struct AdminBinhLuanTemplate {
[INFO] [stdout]      |            --------------------- fields in this struct
[INFO] [stdout] 2207 |     pub user: Option<User>,
[INFO] [stdout] 2208 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2216 |     pub total_flagged: usize,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:2224:9
[INFO] [stdout]      |
[INFO] [stdout] 2222 | pub struct AdminNhomTemplate {
[INFO] [stdout]      |            ----------------- field in this struct
[INFO] [stdout] 2223 |     pub user: Option<User>,
[INFO] [stdout] 2224 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]     --> src/handlers/admin.rs:2238:9
[INFO] [stdout]      |
[INFO] [stdout] 2236 | pub struct AdminTuVungCamTemplate {
[INFO] [stdout]      |            ---------------------- field in this struct
[INFO] [stdout] 2237 |     pub user: Option<User>,
[INFO] [stdout] 2238 |     pub stats: AdminStats,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_forbidden_words` is never used
[INFO] [stdout]     --> src/handlers/admin.rs:2877:14
[INFO] [stdout]      |
[INFO] [stdout] 2877 | pub async fn check_forbidden_words(pool: &sqlx::PgPool, content: &str) -> Option<(String, String)> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_full` is never read
[INFO] [stdout]     --> src/handlers/giai_doan_61_70.rs:1371:9
[INFO] [stdout]      |
[INFO] [stdout] 1363 |     struct SessionRow {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1371 |         is_full: bool,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]     --> src/handlers/giai_doan_61_70.rs:1551:13
[INFO] [stdout]      |
[INFO] [stdout] 1550 |         struct BookmarkRow {
[INFO] [stdout]      |                ----------- field in this struct
[INFO] [stdout] 1551 |             id: i64,
[INFO] [stdout]      |             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_track` is never read
[INFO] [stdout]   --> src/handlers/nha_nhac.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct NhaNhacTemplate {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub last_track: Option<MusicTrack>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/handlers/reminders.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct NotificationPreferences {
[INFO] [stdout]    |            ----------------------- field in this struct
[INFO] [stdout] 28 |     pub user_id: uuid::Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NotificationPreferences` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_balance` is never used
[INFO] [stdout]    --> src/handlers/tien_te.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | async fn update_balance(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `last_reset_at`, and `created_at` are never read
[INFO] [stdout]   --> src/handlers/tu_hoc_goals.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TuHocGoal {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 34 |     pub id: i64,
[INFO] [stdout] 35 |     pub user_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub last_reset_at: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 44 |     pub created_at: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TuHocGoal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `motivation`, `reviewed_by`, `reviewed_at`, `review_note`, and `updated_at` are never read
[INFO] [stdout]   --> src/handlers/tu_si.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct TuSiApplication {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 78 |     pub id: i64,
[INFO] [stdout] 79 |     pub user_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub motivation: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 83 |     pub status: String,
[INFO] [stdout] 84 |     pub reviewed_by: Option<Uuid>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 85 |     pub reviewed_at: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 86 |     pub review_note: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 87 |     pub created_at: DateTime<Utc>,
[INFO] [stdout] 88 |     pub updated_at: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TuSiApplication` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id` and `status` are never read
[INFO] [stdout]   --> src/handlers/tu_si.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct TuSiApplicationWithUser {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] 93 |     pub id: i64,
[INFO] [stdout] 94 |     pub user_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TuSiApplicationWithUser` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `icon`, `color`, and `as_str` are never used
[INFO] [stdout]   --> src/models/thuong_thanh.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ShopStore {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn icon(self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn color(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn as_str(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl TxType {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn as_str(self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_enum`, `price_display`, `payment_label`, `bank_info_struct`, `stock_label`, and `relative_time` are never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl ShopItem {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 181 |     /// Store enum.
[INFO] [stdout] 182 |     pub fn store_enum(&self) -> ShopStore {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn price_display(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn payment_label(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn bank_info_struct(&self) -> Option<BankInfo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn stock_label(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn relative_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `price_display`, `payment_label`, and `relative_time` are never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | impl ShopItemWithSeller {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn price_display(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn payment_label(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn relative_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartItem` is never constructed
[INFO] [stdout]    --> src/models/thuong_thanh.rs:415:12
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub struct CartItem {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transaction` is never constructed
[INFO] [stdout]    --> src/models/thuong_thanh.rs:449:12
[INFO] [stdout]     |
[INFO] [stdout] 449 | pub struct Transaction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `tx_type_enum` and `relative_time` are never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:464:12
[INFO] [stdout]     |
[INFO] [stdout] 463 | impl Transaction {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 464 |     pub fn tx_type_enum(&self) -> TxType {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 469 |     pub fn relative_time(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_vnd` is never used
[INFO] [stdout]    --> src/models/thuong_thanh.rs:582:8
[INFO] [stdout]     |
[INFO] [stdout] 582 | pub fn format_vnd(amount: i64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buyer_contact` is never read
[INFO] [stdout]    --> src/models/thuong_thanh.rs:640:9
[INFO] [stdout]     |
[INFO] [stdout] 601 | pub struct ItemCreateForm {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub buyer_contact: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ItemCreateForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `note` is never read
[INFO] [stdout]    --> src/models/thuong_thanh.rs:743:9
[INFO] [stdout]     |
[INFO] [stdout] 741 | pub struct CheckoutForm {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 742 |     /// Có thể thêm coupon sau này
[INFO] [stdout] 743 |     pub note: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CheckoutForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 40s
[INFO] running `Command { std: "docker" "inspect" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92", kill_on_drop: false }`
[INFO] [stdout] 34a7ccb507f16a41e685b7f7ac003c739dfd5970084640885afebd672adafd92
