[INFO] cloning repository https://github.com/datagutt/slimeonline2-server [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/datagutt/slimeonline2-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatagutt%2Fslimeonline2-server", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatagutt%2Fslimeonline2-server'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fb5d57f7a9d3bdc4a069869b5c840ca7625c498e [INFO] checking datagutt/slimeonline2-server/fb5d57f7a9d3bdc4a069869b5c840ca7625c498e against master#ff086354c9fc93e1da1d2f4d255456624fbcd099 for pr-153513 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatagutt%2Fslimeonline2-server" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/datagutt/slimeonline2-server [INFO] finished tweaking git repo https://github.com/datagutt/slimeonline2-server [INFO] tweaked toml for git repo https://github.com/datagutt/slimeonline2-server written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/datagutt/slimeonline2-server on toolchain ff086354c9fc93e1da1d2f4d255456624fbcd099 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ff086354c9fc93e1da1d2f4d255456624fbcd099" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/datagutt/slimeonline2-server 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" "+ff086354c9fc93e1da1d2f4d255456624fbcd099" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tabled_derive v0.6.0 [INFO] [stderr] Downloaded fd-lock v3.0.13 [INFO] [stderr] Downloaded sqlformat v0.2.6 [INFO] [stderr] Downloaded sqlx-macros v0.7.4 [INFO] [stderr] Downloaded sqlx-macros-core v0.7.4 [INFO] [stderr] Downloaded base64ct v1.8.1 [INFO] [stderr] Downloaded sqlx-mysql v0.7.4 [INFO] [stderr] Downloaded sqlx-sqlite v0.7.4 [INFO] [stderr] Downloaded schemars v1.2.0 [INFO] [stderr] Downloaded sqlx-postgres v0.7.4 [INFO] [stderr] Downloaded sqlx-core v0.7.4 [INFO] [stderr] Downloaded sqlx v0.7.4 [INFO] [stderr] Downloaded tabled v0.14.0 [INFO] [stderr] Downloaded rustyline v12.0.0 [INFO] [stderr] Downloaded papergrid v0.10.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ff086354c9fc93e1da1d2f4d255456624fbcd099" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 772e8290e54f8186e01a07c59fad2c41763d1467f93c193bee6a93616562c335 [INFO] running `Command { std: "docker" "start" "-a" "772e8290e54f8186e01a07c59fad2c41763d1467f93c193bee6a93616562c335", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "772e8290e54f8186e01a07c59fad2c41763d1467f93c193bee6a93616562c335", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "772e8290e54f8186e01a07c59fad2c41763d1467f93c193bee6a93616562c335", kill_on_drop: false }` [INFO] [stdout] 772e8290e54f8186e01a07c59fad2c41763d1467f93c193bee6a93616562c335 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ff086354c9fc93e1da1d2f4d255456624fbcd099" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0a31070518757a5a1bf9128b52a3a760845a88ab87aaada88a580f631c0cc02d [INFO] running `Command { std: "docker" "start" "-a" "0a31070518757a5a1bf9128b52a3a760845a88ab87aaada88a580f631c0cc02d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.104 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.148 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Compiling libsqlite3-sys v0.27.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling sct v0.7.1 [INFO] [stderr] Compiling rustls-webpki v0.101.7 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zmij v1.0.2 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling unicode_categories v0.1.1 [INFO] [stderr] Compiling base64 v0.21.7 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Compiling rustls-pemfile v1.0.4 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling sqlformat v0.2.6 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Compiling hashlink v0.8.4 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking tokio-util v0.7.17 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling webpki-roots v0.25.4 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling darling_core v0.21.3 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking h2 v0.3.27 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling sqlx-core v0.7.4 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Compiling darling_macro v0.21.3 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Compiling darling v0.21.3 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Checking toml_write v0.1.2 [INFO] [stderr] Checking bytecount v0.6.9 [INFO] [stderr] Checking clap_lex v0.7.6 [INFO] [stderr] Checking clap_builder v4.5.53 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Checking axum-core v0.4.5 [INFO] [stderr] Compiling sqlx-sqlite v0.7.4 [INFO] [stderr] Checking fd-lock v3.0.13 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking papergrid v0.10.0 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Compiling tabled_derive v0.6.0 [INFO] [stderr] Checking blowfish v0.9.1 [INFO] [stderr] Compiling serde_with_macros v3.16.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Compiling sqlx-macros-core v0.7.4 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking serde_path_to_error v0.1.20 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking http-range-header v0.4.2 [INFO] [stderr] Checking rustyline v12.0.0 [INFO] [stderr] Checking tower-http v0.5.2 [INFO] [stderr] Checking bcrypt v0.15.1 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking axum v0.7.9 [INFO] [stderr] Checking serde_with v3.16.1 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking tabled v0.14.0 [INFO] [stderr] Compiling sqlx-macros v0.7.4 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking clap v4.5.53 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking uuid v1.19.0 [INFO] [stderr] Checking sqlx v0.7.4 [INFO] [stderr] Checking mod_tools v1.0.0 (/opt/rustwide/workdir/mod_tools) [INFO] [stderr] Checking slime2_server v1.3.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0425]: cannot find function `validate_storage_slot` in this scope [INFO] [stdout] --> src/validation.rs:797:17 [INFO] [stdout] | [INFO] [stdout] 672 | pub fn validate_storage_page(page: u8) -> ValidationResult { [INFO] [stdout] | -------------------------------------------------------------- similarly named function `validate_storage_page` defined here [INFO] [stdout] ... [INFO] [stdout] 797 | assert!(validate_storage_slot(1).is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: a function with a similar name exists [INFO] [stdout] | [INFO] [stdout] 797 - assert!(validate_storage_slot(1).is_ok()); [INFO] [stdout] 797 + assert!(validate_storage_page(1).is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `validate_storage_slot` in this scope [INFO] [stdout] --> src/validation.rs:798:17 [INFO] [stdout] | [INFO] [stdout] 672 | pub fn validate_storage_page(page: u8) -> ValidationResult { [INFO] [stdout] | -------------------------------------------------------------- similarly named function `validate_storage_page` defined here [INFO] [stdout] ... [INFO] [stdout] 798 | assert!(validate_storage_slot(180).is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: a function with a similar name exists [INFO] [stdout] | [INFO] [stdout] 798 - assert!(validate_storage_slot(180).is_ok()); [INFO] [stdout] 798 + assert!(validate_storage_page(180).is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `validate_storage_slot` in this scope [INFO] [stdout] --> src/validation.rs:799:17 [INFO] [stdout] | [INFO] [stdout] 672 | pub fn validate_storage_page(page: u8) -> ValidationResult { [INFO] [stdout] | -------------------------------------------------------------- similarly named function `validate_storage_page` defined here [INFO] [stdout] ... [INFO] [stdout] 799 | assert!(validate_storage_slot(0).is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: a function with a similar name exists [INFO] [stdout] | [INFO] [stdout] 799 - assert!(validate_storage_slot(0).is_err()); [INFO] [stdout] 799 + assert!(validate_storage_page(0).is_err()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `validate_storage_slot` in this scope [INFO] [stdout] --> src/validation.rs:800:17 [INFO] [stdout] | [INFO] [stdout] 672 | pub fn validate_storage_page(page: u8) -> ValidationResult { [INFO] [stdout] | -------------------------------------------------------------- similarly named function `validate_storage_page` defined here [INFO] [stdout] ... [INFO] [stdout] 800 | assert!(validate_storage_slot(181).is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: a function with a similar name exists [INFO] [stdout] | [INFO] [stdout] 800 - assert!(validate_storage_slot(181).is_err()); [INFO] [stdout] 800 + assert!(validate_storage_page(181).is_err()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `missing` on type `ClanCreationCheck` [INFO] [stdout] --> src/validation.rs:820:23 [INFO] [stdout] | [INFO] [stdout] 820 | assert!(check.missing.is_empty()); [INFO] [stdout] | ^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `has_all_items`, `has_enough_points`, `is_valid`, `missing_items`, `found_item_slots` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `has_proof_of_nature` on type `ClanCreationCheck` [INFO] [stdout] --> src/validation.rs:826:24 [INFO] [stdout] | [INFO] [stdout] 826 | assert!(!check.has_proof_of_nature); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `has_all_items`, `has_enough_points`, `is_valid`, `missing_items`, `found_item_slots` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] [INFO] [stderr] error: could not compile `slime2_server` (bin "slime2_server" test) due to 6 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: fields `paper` and `font_color` are never read [INFO] [stdout] --> src/admin/handlers/mail.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct SendMailRequest { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub paper: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 29 | #[serde(default)] [INFO] [stdout] 30 | pub font_color: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `new_anticheat` is never used [INFO] [stdout] --> src/anticheat/mod.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | pub fn new_anticheat() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hack_count` is never used [INFO] [stdout] --> src/anticheat/hack_tracker.rs:70:14 [INFO] [stdout] | [INFO] [stdout] 70 | pub async fn get_hack_count(pool: &SqlitePool, account_id: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reset_hack_count` is never used [INFO] [stdout] --> src/anticheat/hack_tracker.rs:84:14 [INFO] [stdout] | [INFO] [stdout] 84 | pub async fn reset_hack_count(pool: &SqlitePool, account_id: i64) -> Result<(), sqlx::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_movement_delta` is never used [INFO] [stdout] --> src/anticheat/movement.rs:236:8 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn validate_movement_delta( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `account_id`, `username`, and `quest_var` are never read [INFO] [stdout] --> src/db/characters.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Character { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 9 | pub id: i64, [INFO] [stdout] 10 | pub account_id: i64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | pub username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub quest_var: i16, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Character` 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 `character_id` and `equipped_tool` are never read [INFO] [stdout] --> src/db/characters.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Inventory { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 33 | pub character_id: i64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub equipped_tool: i16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Inventory` 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 `create_clan` is never used [INFO] [stdout] --> src/db/clans.rs:33:14 [INFO] [stdout] | [INFO] [stdout] 33 | pub async fn create_clan( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_character_clan_id` is never used [INFO] [stdout] --> src/db/clans.rs:308:14 [INFO] [stdout] | [INFO] [stdout] 308 | pub async fn get_character_clan_id( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `increase_clan_slots` is never used [INFO] [stdout] --> src/db/clans.rs:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | pub async fn increase_clan_slots(pool: &DbPool, clan_id: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from_character_id` and `to_character_id` are never read [INFO] [stdout] --> src/db/mail.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Mail { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 9 | pub id: i64, [INFO] [stdout] 10 | pub from_character_id: Option, // NULL for system mail [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | pub to_character_id: i64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mail` 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 `get_mail` is never used [INFO] [stdout] --> src/db/mail.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | pub async fn get_mail( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_mail_attachments` is never used [INFO] [stdout] --> src/db/mail.rs:174:14 [INFO] [stdout] | [INFO] [stdout] 174 | pub async fn clear_mail_attachments( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_collectible_state` is never used [INFO] [stdout] --> src/db/runtime_state.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | pub async fn get_collectible_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_collectible_item` is never used [INFO] [stdout] --> src/db/runtime_state.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | pub async fn update_collectible_item( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `room_id`, `planted_at`, and `next_stage_at` are never read [INFO] [stdout] --> src/db/runtime_state.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct PlantState { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 150 | pub room_id: i64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub planted_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 158 | pub next_stage_at: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlantState` 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 `harvest_plant` is never used [INFO] [stdout] --> src/db/runtime_state.rs:305:14 [INFO] [stdout] | [INFO] [stdout] 305 | pub async fn harvest_plant(pool: &DbPool, room_id: u16, spot_id: u8) -> Result<(), sqlx::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_plant` is never used [INFO] [stdout] --> src/db/runtime_state.rs:321:14 [INFO] [stdout] | [INFO] [stdout] 321 | pub async fn clear_plant(pool: &DbPool, room_id: u16, spot_id: u8) -> Result<(), sqlx::Error> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_plants_to_advance` is never used [INFO] [stdout] --> src/db/runtime_state.rs:336:14 [INFO] [stdout] | [INFO] [stdout] 336 | pub async fn get_plants_to_advance(pool: &DbPool) -> Result, sqlx::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShopStock` is never constructed [INFO] [stdout] --> src/db/runtime_state.rs:356:12 [INFO] [stdout] | [INFO] [stdout] 356 | pub struct ShopStock { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_shop_stock` is never used [INFO] [stdout] --> src/db/runtime_state.rs:365:14 [INFO] [stdout] | [INFO] [stdout] 365 | pub async fn get_shop_stock(pool: &DbPool, room_id: u16) -> Result, sqlx::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_shop_slot_stock` is never used [INFO] [stdout] --> src/db/runtime_state.rs:379:14 [INFO] [stdout] | [INFO] [stdout] 379 | pub async fn get_shop_slot_stock( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrease_shop_stock` is never used [INFO] [stdout] --> src/db/runtime_state.rs:398:14 [INFO] [stdout] | [INFO] [stdout] 398 | pub async fn decrease_shop_stock( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `dropped_by`, `dropped_at`, and `expires_at` are never read [INFO] [stdout] --> src/db/runtime_state.rs:465:9 [INFO] [stdout] | [INFO] [stdout] 459 | pub struct GroundItem { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 465 | pub dropped_by: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 466 | pub dropped_at: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 467 | pub expires_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GroundItem` 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 `built_at` and `expires_at` are never read [INFO] [stdout] --> src/db/runtime_state.rs:1017:9 [INFO] [stdout] | [INFO] [stdout] 1012 | pub struct BuildingState { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 1017 | pub built_at: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 1018 | pub expires_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BuildingState` 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 `cleanup_expired_buildings` is never used [INFO] [stdout] --> src/db/runtime_state.rs:1127:14 [INFO] [stdout] | [INFO] [stdout] 1127 | pub async fn cleanup_expired_buildings(pool: &DbPool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `town_id`, `category`, and `slot_id` are never read [INFO] [stdout] --> src/db/upgrader.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct UpgraderState { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 16 | pub town_id: i64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 17 | pub category: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 18 | pub slot_id: i64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UpgraderState` 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 `get_upgrader_states_by_category` is never used [INFO] [stdout] --> src/db/upgrader.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | pub async fn get_upgrader_states_by_category( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpgraderUnlocked` is never constructed [INFO] [stdout] --> src/db/upgrader.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct UpgraderUnlocked { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnlockableState` is never constructed [INFO] [stdout] --> src/db/upgrader.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct UnlockableState { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_unlockable_available` is never used [INFO] [stdout] --> src/db/upgrader.rs:174:14 [INFO] [stdout] | [INFO] [stdout] 174 | pub async fn is_unlockable_available( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MusicChangerState` is never constructed [INFO] [stdout] --> src/db/upgrader.rs:239:12 [INFO] [stdout] | [INFO] [stdout] 239 | pub struct MusicChangerState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_music_unlocked` is never used [INFO] [stdout] --> src/db/upgrader.rs:247:14 [INFO] [stdout] | [INFO] [stdout] 247 | pub async fn is_music_unlocked( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WarpCenterState` is never constructed [INFO] [stdout] --> src/db/upgrader.rs:318:12 [INFO] [stdout] | [INFO] [stdout] 318 | pub struct WarpCenterState { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_shop_slot_unlocked` is never used [INFO] [stdout] --> src/db/upgrader.rs:376:14 [INFO] [stdout] | [INFO] [stdout] 376 | pub async fn is_shop_slot_unlocked( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `broadcast_building_freed` is never used [INFO] [stdout] --> src/handlers/building.rs:242:14 [INFO] [stdout] | [INFO] [stdout] 242 | pub async fn broadcast_building_freed(server: &Arc, room_id: u16, spot_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/handlers/items/database.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct ItemInfo { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 37 | pub id: u16, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `ItemInfo` 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 `get_sell_price` is never used [INFO] [stdout] --> src/handlers/items/database.rs:362:8 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn get_sell_price(item_id: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_points_update` is never used [INFO] [stdout] --> src/protocol/messages.rs:456:8 [INFO] [stdout] | [INFO] [stdout] 456 | pub fn write_points_update(writer: &mut MessageWriter, total_points: u32, play_sound: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `MessageTooShort` is never constructed [INFO] [stdout] --> src/protocol/reader.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum ReadError { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | MessageTooShort { minimum: usize, actual: usize }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/protocol/reader.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl<'a> MessageReader<'a> { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn position(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn skip(&mut self, count: usize) -> ReadResult<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn read_i32(&mut self) -> ReadResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn read_f32(&mut self) -> ReadResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn read_bytes(&mut self, len: usize) -> ReadResult> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn peek_u8(&self) -> ReadResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn peek_u16(&self) -> ReadResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn read_message_type(&mut self) -> ReadResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn remaining_data(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_u8`, `as_u16`, `as_u32`, `as_i16`, and `as_string` are never used [INFO] [stdout] --> src/protocol/types.rs:781:12 [INFO] [stdout] | [INFO] [stdout] 780 | impl FieldValue { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 781 | pub fn as_u8(&self) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 787 | pub fn as_u16(&self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 793 | pub fn as_u32(&self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 799 | pub fn as_i16(&self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 805 | pub fn as_string(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `I8`, `I16`, `I32`, `F32`, `Bool`, and `Bytes` are never constructed [INFO] [stdout] --> src/protocol/types.rs:832:5 [INFO] [stdout] | [INFO] [stdout] 828 | pub enum FieldType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 832 | I8, [INFO] [stdout] | ^^ [INFO] [stdout] 833 | I16, [INFO] [stdout] | ^^^ [INFO] [stdout] 834 | I32, [INFO] [stdout] | ^^^ [INFO] [stdout] 835 | F32, [INFO] [stdout] | ^^^ [INFO] [stdout] 836 | Bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 840 | Bytes(usize), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FieldType` 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: multiple methods are never used [INFO] [stdout] --> src/protocol/types.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 885 | impl ParsedMessage { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 893 | pub fn with_field(mut self, name: &'static str, value: FieldValue) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 898 | pub fn get(&self, name: &str) -> Option<&FieldValue> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 902 | pub fn get_u8(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 906 | pub fn get_u16(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 910 | pub fn get_u32(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 914 | pub fn get_i16(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 918 | pub fn get_string(&self, name: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `usage` is never used [INFO] [stdout] --> src/rate_limit.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 118 | impl RateLimitBucket { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 159 | fn usage(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cleanup_interval` is never read [INFO] [stdout] --> src/rate_limit.rs:235:5 [INFO] [stdout] | [INFO] [stdout] 227 | pub struct RateLimiter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 235 | cleanup_interval: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `severity` is never read [INFO] [stdout] --> src/validation.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct ValidationError { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub severity: Severity, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ValidationError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Validator` is never constructed [INFO] [stdout] --> src/validation.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct Validator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/validation.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl Validator { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 66 | /// Create a new validator from game config [INFO] [stdout] 67 | pub fn new(config: &GameConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn username(&self, username: &str) -> ValidationResult<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn password(&self, password: &str) -> ValidationResult<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn chat_message<'a>(&self, message: &'a str) -> ValidationResult<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clan_name(&self, name: &str) -> ValidationResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn points(&self, points: u32) -> ValidationResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn bank_amount(&self, amount: u32, current_balance: u32) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn sanitize_username(&self, input: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn sanitize_chat(&self, input: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_tool_slot` is never used [INFO] [stdout] --> src/validation.rs:349:8 [INFO] [stdout] | [INFO] [stdout] 349 | pub fn validate_tool_slot(slot: u8) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_emote_slot` is never used [INFO] [stdout] --> src/validation.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | pub fn validate_emote_slot(slot: u8) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_points` is never used [INFO] [stdout] --> src/validation.rs:378:8 [INFO] [stdout] | [INFO] [stdout] 378 | pub fn validate_points(points: u32, max_points: u32) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_bank_amount` is never used [INFO] [stdout] --> src/validation.rs:390:8 [INFO] [stdout] | [INFO] [stdout] 390 | pub fn validate_bank_amount( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_item_id` is never used [INFO] [stdout] --> src/validation.rs:424:8 [INFO] [stdout] | [INFO] [stdout] 424 | pub fn validate_item_id(item_id: u16) -> ValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_mail` is never used [INFO] [stdout] --> src/validation.rs:461:8 [INFO] [stdout] | [INFO] [stdout] 461 | pub fn validate_mail( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_valid` is never read [INFO] [stdout] --> src/validation.rs:605:9 [INFO] [stdout] | [INFO] [stdout] 599 | pub struct ClanCreationCheck { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 605 | pub is_valid: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClanCreationCheck` 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: constant `STORAGE_SLOTS_PER_PAGE` is never used [INFO] [stdout] --> src/validation.rs:666:7 [INFO] [stdout] | [INFO] [stdout] 666 | const STORAGE_SLOTS_PER_PAGE: u8 = 9; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sanitize_username` is never used [INFO] [stdout] --> src/validation.rs:726:8 [INFO] [stdout] | [INFO] [stdout] 726 | pub fn sanitize_username(input: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0a31070518757a5a1bf9128b52a3a760845a88ab87aaada88a580f631c0cc02d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0a31070518757a5a1bf9128b52a3a760845a88ab87aaada88a580f631c0cc02d", kill_on_drop: false }` [INFO] [stdout] 0a31070518757a5a1bf9128b52a3a760845a88ab87aaada88a580f631c0cc02d