[INFO] cloning repository https://github.com/mia-platform/crud-service-universal
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mia-platform/crud-service-universal" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmia-platform%2Fcrud-service-universal", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmia-platform%2Fcrud-service-universal'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d033913e05b18d110b05f4999b5dd55f3360fffc
[INFO] testing mia-platform/crud-service-universal against master#1ef7943ee607160a564655b6596f83670ef95df5 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmia-platform%2Fcrud-service-universal" "/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/mia-platform/crud-service-universal
[INFO] finished tweaking git repo https://github.com/mia-platform/crud-service-universal
[INFO] tweaked toml for git repo https://github.com/mia-platform/crud-service-universal written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mia-platform/crud-service-universal on toolchain 1ef7943ee607160a564655b6596f83670ef95df5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mia-platform/crud-service-universal 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" "+1ef7943ee607160a564655b6596f83670ef95df5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded iana-time-zone v0.1.64
[INFO] [stderr]   Downloaded sqlx-macros v0.8.6
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.3
[INFO] [stderr]   Downloaded ndk-glue v0.5.2
[INFO] [stderr]   Downloaded oracle_procmacro v0.1.2
[INFO] [stderr]   Downloaded rust-embed-impl v8.7.2
[INFO] [stderr]   Downloaded windows-result v0.4.1
[INFO] [stderr]   Downloaded fragile v2.0.1
[INFO] [stderr]   Downloaded jsonwebtoken v9.3.1
[INFO] [stderr]   Downloaded clap v4.5.48
[INFO] [stderr]   Downloaded outref v0.5.2
[INFO] [stderr]   Downloaded bytes-utils v0.1.4
[INFO] [stderr]   Downloaded aws-smithy-query v0.60.8
[INFO] [stderr]   Downloaded aws-smithy-async v1.2.6
[INFO] [stderr]   Downloaded xmlparser v0.13.6
[INFO] [stderr]   Downloaded axum-extra v0.9.6
[INFO] [stderr]   Downloaded libxlsxwriter-sys v1.1.7
[INFO] [stderr]   Downloaded headers v0.4.1
[INFO] [stderr]   Downloaded aws-sdk-sso v1.85.0
[INFO] [stderr]   Downloaded aws-sigv4 v1.3.4
[INFO] [stderr]   Downloaded aws-sdk-ssooidc v1.87.0
[INFO] [stderr]   Downloaded aws-config v1.8.7
[INFO] [stderr]   Downloaded aws-sdk-sts v1.87.0
[INFO] [stderr]   Downloaded bytecount v0.6.9
[INFO] [stderr]   Downloaded calloop v0.9.3
[INFO] [stderr]   Downloaded metrics v0.21.1
[INFO] [stderr]   Downloaded metrics v0.22.4
[INFO] [stderr]   Downloaded elasticsearch v9.1.0-alpha.1
[INFO] [stderr]   Downloaded ipconfig v0.3.2
[INFO] [stderr]   Downloaded compression-core v0.4.29
[INFO] [stderr]   Downloaded libsqlite3-sys v0.30.1
[INFO] [stderr]   Downloaded sqlx-core v0.8.6
[INFO] [stderr]   Downloaded async-compression v0.4.32
[INFO] [stderr]   Downloaded sqlx-sqlite v0.8.6
[INFO] [stderr]   Downloaded rustls v0.23.32
[INFO] [stderr]   Downloaded rust-embed v8.7.2
[INFO] [stderr]   Downloaded fancy-regex v0.11.0
[INFO] [stderr]   Downloaded h2 v0.3.27
[INFO] [stderr]   Downloaded sqlx-mysql v0.8.6
[INFO] [stderr]   Downloaded hyper-util v0.1.17
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.20
[INFO] [stderr]   Downloaded sqlx-postgres v0.8.6
[INFO] [stderr]   Downloaded aws-sdk-dynamodb v1.94.0
[INFO] [stderr]   Downloaded fraction v0.13.1
[INFO] [stderr]   Downloaded oracle v0.5.8
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.15.4
[INFO] [stderr]   Downloaded trust-dns-resolver v0.21.2
[INFO] [stderr]   Downloaded aws-lc-rs v1.14.0
[INFO] [stderr]   Downloaded zip v0.6.6
[INFO] [stderr]   Downloaded time v0.3.44
[INFO] [stderr]   Downloaded webpki-roots v1.0.2
[INFO] [stderr]   Downloaded indexmap v2.11.4
[INFO] [stderr]   Downloaded pem v3.0.5
[INFO] [stderr]   Downloaded simple_asn1 v0.6.3
[INFO] [stderr]   Downloaded mockall_derive v0.12.1
[INFO] [stderr]   Downloaded mockall v0.12.1
[INFO] [stderr]   Downloaded typed-builder v0.10.0
[INFO] [stderr]   Downloaded http-types v2.12.0
[INFO] [stderr]   Downloaded force-send-sync v1.2.0
[INFO] [stderr]   Downloaded odbc-sys v0.22.0
[INFO] [stderr]   Downloaded windows-interface v0.59.3
[INFO] [stderr]   Downloaded windows-core v0.62.2
[INFO] [stderr]   Downloaded aws-smithy-runtime v1.9.3
[INFO] [stderr]   Downloaded azure_data_cosmos v0.18.0
[INFO] [stderr]   Downloaded pest v2.8.3
[INFO] [stderr]   Downloaded yaml-rust2 v0.8.1
[INFO] [stderr]   Downloaded serde_with v3.15.0
[INFO] [stderr]   Downloaded iso8601 v0.6.3
[INFO] [stderr]   Downloaded metrics-macros v0.7.1
[INFO] [stderr]   Downloaded metrics-util v0.16.3
[INFO] [stderr]   Downloaded metrics-prometheus v0.6.0
[INFO] [stderr]   Downloaded rustc_version_runtime v0.2.1
[INFO] [stderr]   Downloaded enum-as-inner v0.4.0
[INFO] [stderr]   Downloaded odbc-sys v0.21.4
[INFO] [stderr]   Downloaded sha1_smol v1.0.1
[INFO] [stderr]   Downloaded security-framework-sys v2.15.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.54
[INFO] [stderr]   Downloaded windows-strings v0.5.1
[INFO] [stderr]   Downloaded aws-smithy-http-client v1.1.3
[INFO] [stderr]   Downloaded num-cmp v0.1.0
[INFO] [stderr]   Downloaded data-encoding v2.9.0
[INFO] [stderr]   Downloaded sqlx-macros-core v0.8.6
[INFO] [stderr]   Downloaded tokio-test v0.4.4
[INFO] [stderr]   Downloaded compression-codecs v0.4.31
[INFO] [stderr]   Downloaded deranged v0.5.4
[INFO] [stderr]   Downloaded matchers v0.2.0
[INFO] [stderr]   Downloaded rust-embed-utils v8.7.2
[INFO] [stderr]   Downloaded utoipa v4.2.3
[INFO] [stderr]   Downloaded utoipa-swagger-ui v6.0.0
[INFO] [stderr]   Downloaded validator_derive v0.18.2
[INFO] [stderr]   Downloaded windows-implement v0.60.2
[INFO] [stderr]   Downloaded aws-runtime v1.5.11
[INFO] [stderr]   Downloaded aws-smithy-runtime-api v1.9.1
[INFO] [stderr]   Downloaded aws-smithy-types v1.3.3
[INFO] [stderr]   Downloaded regex-lite v0.1.7
[INFO] [stderr]   Downloaded security-framework v3.5.1
[INFO] [stderr]   Downloaded quinn-proto v0.11.13
[INFO] [stderr]   Downloaded base64ct v1.8.0
[INFO] [stderr]   Downloaded hashlink v0.10.0
[INFO] [stderr]   Downloaded serde_path_to_error v0.1.20
[INFO] [stderr]   Downloaded calamine v0.22.1
[INFO] [stderr]   Downloaded pest_meta v2.8.3
[INFO] [stderr]   Downloaded rustls v0.22.4
[INFO] [stderr]   Downloaded serde_qs v0.8.5
[INFO] [stderr]   Downloaded azure_core v0.18.0
[INFO] [stderr]   Downloaded pest_derive v2.8.3
[INFO] [stderr]   Downloaded config v0.14.1
[INFO] [stderr]   Downloaded darling_core v0.21.3
[INFO] [stderr]   Downloaded serde_with_macros v3.15.0
[INFO] [stderr]   Downloaded hyper-rustls v0.25.0
[INFO] [stderr]   Downloaded gcp-bigquery-client v0.18.1
[INFO] [stderr]   Downloaded mongodb v2.8.2
[INFO] [stderr]   Downloaded aws-smithy-xml v0.60.11
[INFO] [stderr]   Downloaded aws-smithy-json v0.61.6
[INFO] [stderr]   Downloaded aws-smithy-http v0.62.4
[INFO] [stderr]   Downloaded aws-credential-types v1.2.7
[INFO] [stderr]   Downloaded pest_generator v2.8.3
[INFO] [stderr]   Downloaded blowfish v0.9.1
[INFO] [stderr]   Downloaded arraydeque v0.5.1
[INFO] [stderr]   Downloaded darling v0.21.3
[INFO] [stderr]   Downloaded tokio-rustls v0.25.0
[INFO] [stderr]   Downloaded quinn v0.11.9
[INFO] [stderr]   Downloaded aws-smithy-observability v0.1.4
[INFO] [stderr]   Downloaded aws-types v1.3.8
[INFO] [stderr]   Downloaded codepage v0.1.2
[INFO] [stderr]   Downloaded ordered-multimap v0.7.3
[INFO] [stderr]   Downloaded rust-ini v0.20.0
[INFO] [stderr]   Downloaded web-sys v0.3.81
[INFO] [stderr]   Downloaded nu-ansi-term v0.50.1
[INFO] [stderr]   Downloaded bcrypt v0.15.1
[INFO] [stderr]   Downloaded json5 v0.4.1
[INFO] [stderr]   Downloaded dlv-list v0.5.2
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.25
[INFO] [stderr]   Downloaded ref-cast v1.0.25
[INFO] [stderr]   Downloaded darling_macro v0.21.3
[INFO] [stderr]   Downloaded lru-slab v0.1.2
[INFO] [stderr]   Downloaded quinn-udp v0.5.14
[INFO] [stderr]   Downloaded tokio-rustls v0.26.4
[INFO] [stderr]   Downloaded rustls-native-certs v0.6.3
[INFO] [stderr]   Downloaded seahash v4.1.0
[INFO] [stderr]   Downloaded yup-oauth2 v8.3.2
[INFO] [stderr]   Downloaded clap_derive v4.5.47
[INFO] [stderr]   Downloaded trust-dns-proto v0.21.2
[INFO] [stderr]   Downloaded bindgen v0.72.1
[INFO] [stderr]   Downloaded h2 v0.4.12
[INFO] [stderr]   Downloaded vsimd v0.8.0
[INFO] [stderr]   Downloaded base64-simd v0.8.0
[INFO] [stderr]   Downloaded headers-core v0.3.0
[INFO] [stderr]   Downloaded infer v0.2.3
[INFO] [stderr]   Downloaded clap_builder v4.5.48
[INFO] [stderr]   Downloaded portable-atomic v1.11.1
[INFO] [stderr]   Downloaded bson v2.15.0
[INFO] [stderr]   Downloaded odbc-api v0.36.1
[INFO] [stderr]   Downloaded redis v0.24.0
[INFO] [stderr]   Downloaded sqlx v0.8.6
[INFO] [stderr]   Downloaded utoipa-gen v4.3.1
[INFO] [stderr]   Downloaded regex v1.11.3
[INFO] [stderr]   Downloaded cc v1.2.40
[INFO] [stderr]   Downloaded nom v8.0.0
[INFO] [stderr]   Downloaded jsonschema v0.17.1
[INFO] [stderr]   Downloaded rustls-webpki v0.103.7
[INFO] [stderr]   Downloaded validator v0.18.1
[INFO] [stderr]   Downloaded libloading v0.8.9
[INFO] [stderr]   Downloaded prettyplease v0.2.37
[INFO] [stderr]   Downloaded jobserver v0.1.34
[INFO] [stderr]   Downloaded xlsxwriter v0.6.1
[INFO] [stderr]   Downloaded sealed v0.5.0
[INFO] [stderr]   Downloaded schannel v0.1.28
[INFO] [stderr]   Downloaded webpki-roots v0.26.11
[INFO] [stderr]   Downloaded resolv-conf v0.7.5
[INFO] [stderr]   Downloaded whoami v1.6.1
[INFO] [stderr]   Downloaded aws-lc-sys v0.31.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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8993f21ab73834a24dc095cb0db8194095b1a0b8759696cdad42da7e50849fe4
[INFO] running `Command { std: "docker" "start" "-a" "8993f21ab73834a24dc095cb0db8194095b1a0b8759696cdad42da7e50849fe4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8993f21ab73834a24dc095cb0db8194095b1a0b8759696cdad42da7e50849fe4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8993f21ab73834a24dc095cb0db8194095b1a0b8759696cdad42da7e50849fe4", kill_on_drop: false }`
[INFO] [stdout] 8993f21ab73834a24dc095cb0db8194095b1a0b8759696cdad42da7e50849fe4
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 69af8e4ab4604e251b9e15964aa93abd5a4d73e486286da72ace945435af6070
[INFO] running `Command { std: "docker" "start" "-a" "69af8e4ab4604e251b9e15964aa93abd5a4d73e486286da72ace945435af6070", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling find-msvc-tools v0.1.3
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling cc v1.2.40
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling indexmap v2.11.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling regex-automata v0.4.11
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling regex v1.11.3
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling deranged v0.5.4
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling flate2 v1.1.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling matches v0.1.10
[INFO] [stderr]    Compiling tap v1.0.1
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling wyz v0.5.1
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling rustc_version_runtime v0.2.1
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling dlv-list v0.5.2
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rust-embed-utils v8.7.2
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling enum-as-inner v0.4.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling funty v2.0.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling compression-core v0.4.29
[INFO] [stderr]    Compiling libxlsxwriter-sys v1.1.7
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling clap_builder v4.5.48
[INFO] [stderr]    Compiling bitvec v1.0.1
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling compression-codecs v0.4.31
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling lru-cache v0.1.2
[INFO] [stderr]    Compiling trust-dns-proto v0.21.2
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling serde_with v1.14.0
[INFO] [stderr]    Compiling rust-embed-impl v8.7.2
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling utoipa-gen v4.3.1
[INFO] [stderr]    Compiling utoipa-swagger-ui v6.0.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling metrics v0.22.4
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling headers-core v0.3.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.1
[INFO] [stderr]    Compiling arraydeque v0.5.1
[INFO] [stderr]    Compiling resolv-conf v0.7.5
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling unicode-properties v0.1.3
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling trust-dns-resolver v0.21.2
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling yaml-rust2 v0.8.1
[INFO] [stderr]    Compiling utoipa v4.2.3
[INFO] [stderr]    Compiling iso8601 v0.6.3
[INFO] [stderr]    Compiling bson v2.15.0
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling metrics-util v0.16.3
[INFO] [stderr]    Compiling headers v0.4.1
[INFO] [stderr]    Compiling rust-embed v8.7.2
[INFO] [stderr]    Compiling rust-ini v0.20.0
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling validator_derive v0.18.2
[INFO] [stderr]    Compiling clap v4.5.48
[INFO] [stderr]    Compiling fraction v0.13.1
[INFO] [stderr]    Compiling blowfish v0.9.1
[INFO] [stderr]    Compiling simple_asn1 v0.6.3
[INFO] [stderr]    Compiling fancy-regex v0.11.0
[INFO] [stderr]    Compiling async-compression v0.4.32
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling sealed v0.5.0
[INFO] [stderr]    Compiling idna v0.5.0
[INFO] [stderr]    Compiling metrics-macros v0.7.1
[INFO] [stderr]    Compiling pem v3.0.5
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling typed-builder v0.10.0
[INFO] [stderr]    Compiling quick-xml v0.30.0
[INFO] [stderr]    Compiling codepage v0.1.2
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha-1 v0.10.1
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling socket2 v0.4.10
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling webpki-roots v0.25.4
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling pathdiff v0.2.3
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling metrics-prometheus v0.6.0
[INFO] [stderr]    Compiling axum-extra v0.9.6
[INFO] [stderr]    Compiling jsonschema v0.17.1
[INFO] [stderr]    Compiling mongodb v2.8.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling config v0.14.1
[INFO] [stderr]    Compiling bcrypt v0.15.1
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling calamine v0.22.1
[INFO] [stderr]    Compiling validator v0.18.1
[INFO] [stderr]    Compiling metrics v0.21.1
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling tracing-appender v0.2.3
[INFO] [stderr]    Compiling xlsxwriter v0.6.1
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling crud-service-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/config.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bson::Bson`
[INFO] [stdout]  --> src/database/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bson::Bson;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bson`
[INFO] [stdout]  --> src/database/mongodb.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/database/mongodb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreateIndexOptions`
[INFO] [stdout]  --> src/db.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/handlers/collections.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/collections.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentState`
[INFO] [stdout]   --> src/handlers/collections.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |         document::{Document, DocumentState},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stdout]    --> src/handlers/collections.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stdout]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stdout]    --> src/handlers/collections.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use futures::stream::TryStreamExt;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::StatusCode`
[INFO] [stdout]  --> src/handlers/health.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/health.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::Json`
[INFO] [stdout]  --> src/handlers/joins.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     response::Json,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AppError`
[INFO] [stdout]  --> src/handlers/views.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     errors::{AppError, AppResult},
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::Next`
[INFO] [stdout]  --> src/middleware/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     middleware::Next,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/middleware/acl.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stdout]   --> src/middleware/acl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::middleware::auth::UserContext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/database/mongodb.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         schema: &Value,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/database/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     options: &HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             AppError::Validation(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |             AppError::Authentication(msg) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |             AppError::Authorization(msg) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             AppError::NotFound(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             AppError::Conflict(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             AppError::BadRequest(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]   --> src/handlers/collections.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_def`
[INFO] [stdout]   --> src/handlers/collections.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let collection_def = state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:203:11
[INFO] [stdout]     |
[INFO] [stdout] 203 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/collections.rs:205:11
[INFO] [stdout]     |
[INFO] [stdout] 205 |     Query(query): Query<QueryParams>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:226:10
[INFO] [stdout]     |
[INFO] [stdout] 226 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:269:11
[INFO] [stdout]     |
[INFO] [stdout] 269 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:290:11
[INFO] [stdout]     |
[INFO] [stdout] 290 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 311 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:312:28
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:332:10
[INFO] [stdout]     |
[INFO] [stdout] 332 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:352:10
[INFO] [stdout]     |
[INFO] [stdout] 352 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:360:11
[INFO] [stdout]     |
[INFO] [stdout] 360 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:371:11
[INFO] [stdout]     |
[INFO] [stdout] 371 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:372:10
[INFO] [stdout]     |
[INFO] [stdout] 372 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/handlers/joins.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |     State(state): State<AppState>,
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Json`, `extract::Extension`, and `http::StatusCode`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     extract::Extension,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     routing::{get, post},
[INFO] [stdout] 8 |     Json, Router,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/main.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{info, warn};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/config.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bson::Bson`
[INFO] [stdout]  --> src/database/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bson::Bson;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bson`
[INFO] [stdout]  --> src/database/mongodb.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/database/mongodb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreateIndexOptions`
[INFO] [stdout]  --> src/db.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/handlers/collections.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/collections.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentState`
[INFO] [stdout]   --> src/handlers/collections.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |         document::{Document, DocumentState},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stdout]    --> src/handlers/collections.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stdout]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stdout]    --> src/handlers/collections.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use futures::stream::TryStreamExt;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::StatusCode`
[INFO] [stdout]  --> src/handlers/health.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/health.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::Json`
[INFO] [stdout]  --> src/handlers/joins.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     response::Json,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AppError`
[INFO] [stdout]  --> src/handlers/views.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     errors::{AppError, AppResult},
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::Next`
[INFO] [stdout]  --> src/middleware/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     middleware::Next,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/middleware/acl.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stdout]   --> src/middleware/acl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::middleware::auth::UserContext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::Database`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use db::Database;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/database/mongodb.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         schema: &Value,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/database/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     options: &HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             AppError::Validation(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |             AppError::Authentication(msg) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |             AppError::Authorization(msg) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             AppError::NotFound(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             AppError::Conflict(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             AppError::BadRequest(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]   --> src/handlers/collections.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_def`
[INFO] [stdout]   --> src/handlers/collections.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let collection_def = state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:203:11
[INFO] [stdout]     |
[INFO] [stdout] 203 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/collections.rs:205:11
[INFO] [stdout]     |
[INFO] [stdout] 205 |     Query(query): Query<QueryParams>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:226:10
[INFO] [stdout]     |
[INFO] [stdout] 226 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:269:11
[INFO] [stdout]     |
[INFO] [stdout] 269 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:290:11
[INFO] [stdout]     |
[INFO] [stdout] 290 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 311 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:312:28
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:332:10
[INFO] [stdout]     |
[INFO] [stdout] 332 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:352:10
[INFO] [stdout]     |
[INFO] [stdout] 352 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:360:11
[INFO] [stdout]     |
[INFO] [stdout] 360 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:371:11
[INFO] [stdout]     |
[INFO] [stdout] 371 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:372:10
[INFO] [stdout]     |
[INFO] [stdout] 372 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/handlers/joins.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |     State(state): State<AppState>,
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/config.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | impl DatabaseType {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 209 |     /// Returns true if this database type is document-based
[INFO] [stdout] 210 |     pub fn is_document_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_sql_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn is_key_value_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn is_search_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_wide_column_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn uses_odbc(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn default_port(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/database/mod.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub trait DatabaseAdapter: Send + Sync {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 30 |     async fn update_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     async fn delete_by_id(&self, collection: &str, id: &str) -> AppResult<bool>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     async fn count(&self, collection: &str, query_params: &QueryParams) -> AppResult<u64>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     async fn collection_exists(&self, collection_name: &str) -> AppResult<bool>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     async fn aggregate(&self, collection: &str, pipeline: &[Value]) -> AppResult<Vec<Document>>;
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn database_name(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn database_type(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `database_name` is never read
[INFO] [stdout]   --> src/database/mongodb.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MongoAdapter {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 13 |     database: Database,
[INFO] [stdout] 14 |     database_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `database`, `create_indexes`, and `health_check` are never used
[INFO] [stdout]    --> src/db.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Database {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn database(&self) -> &MongoDatabase {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn create_indexes(&self, collection_def: &CollectionDefinition) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn health_check(&self) -> AppResult<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_index_model` is never used
[INFO] [stdout]    --> src/db.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn create_index_model(index_def: &IndexDefinition) -> AppResult<IndexModel> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/errors.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Authentication(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Authorization(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Conflict(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     Excel(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Timeout,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     RateLimit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     InvalidStateTransition { from: String, to: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     Index(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     UnsupportedFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     FileTooLarge { size: usize, max: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` 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 associated functions are never used
[INFO] [stdout]    --> src/errors.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl AppError {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 225 |     pub fn validation<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn unauthorized<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn forbidden<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn conflict<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn duplicate_key<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn invalid_state_transition<T: Into<String>>(from: T, to: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn unsupported_format<T: Into<String>>(format: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn file_too_large(size: usize, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `roles`, and `permissions` are never read
[INFO] [stdout]    --> src/middleware/auth.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct UserContext {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 139 |     pub user_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 140 |     pub roles: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 141 |     pub permissions: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserContext` 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: associated items `anonymous`, `has_role`, `has_permission`, and `is_anonymous` are never used
[INFO] [stdout]    --> src/middleware/auth.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl UserContext {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 145 |     /// Create an anonymous user context
[INFO] [stdout] 146 |     pub fn anonymous() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn has_role(&self, role: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn has_permission(&self, permission: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn is_anonymous(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_user_context` is never used
[INFO] [stdout]    --> src/middleware/auth.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_user_context(request: &Request) -> UserContext {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `row_filter`, `read_columns`, and `write_columns` are never read
[INFO] [stdout]    --> src/middleware/acl.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct AclContext {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 147 |     /// Row-level filter to apply to queries
[INFO] [stdout] 148 |     pub row_filter: Option<BsonDocument>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub read_columns: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub write_columns: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AclContext` 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 associated items are never used
[INFO] [stdout]    --> src/middleware/acl.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl AclContext {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 158 |     /// Create an empty ACL context (no restrictions)
[INFO] [stdout] 159 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn apply_row_filter(&self, mut filter: BsonDocument) -> BsonDocument {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn create_read_projection(&self) -> Option<BsonDocument> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn filter_read_fields(&self, mut document: HashMap<String, serde_json::Value>) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn validate_write_fields(&self, fields: &HashMap<String, serde_json::Value>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn can_read_field(&self, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn can_write_field(&self, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_acl_context` is never used
[INFO] [stdout]    --> src/middleware/acl.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn get_acl_context(request: &Request) -> AclContext {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/middleware/request_id.rs:108:22
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct RequestId(pub String);
[INFO] [stdout]     |            --------- ^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `RequestId` 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: method `get` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl RequestId {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 111 |     pub fn get(&self) -> &str {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_request_id` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn get_request_id(request: &Request) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_request_id_from_headers` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn extract_request_id_from_headers(request: &Request) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_message` is never used
[INFO] [stdout]   --> src/models/api.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<T> ApiResponse<T> {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn with_message(data: T, message: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_pagination` is never used
[INFO] [stdout]   --> src/models/api.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T> ListResponse<T> {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_pagination(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct StateChangeResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_errors` are never used
[INFO] [stdout]    --> src/models/api.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl StateChangeResponse {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] 145 |     pub fn new(modified: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn with_errors(modified: u64, errors: Vec<StateChangeError>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct StateChangeError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeRequest` is never constructed
[INFO] [stdout]    --> src/models/api.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct StateChangeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BulkRequest` is never constructed
[INFO] [stdout]    --> src/models/api.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct BulkRequest<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BulkOperation` is never constructed
[INFO] [stdout]    --> src/models/api.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct BulkOperation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BulkOperationType` is never used
[INFO] [stdout]    --> src/models/api.rs:191:10
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub enum BulkOperationType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportFormat` is never used
[INFO] [stdout]    --> src/models/api.rs:201:10
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub enum ExportFormat {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct ImportResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/models/api.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl ImportResponse {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub struct ImportError {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct ValidationResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `valid` and `invalid` are never used
[INFO] [stdout]    --> src/models/api.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl ValidationResponse {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 264 |     pub fn valid() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn invalid(errors: Vec<ValidationError>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct ValidationError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `endpoint_path`, `uses_json_schema`, `get_field_names`, and `get_required_fields` are never used
[INFO] [stdout]    --> src/models/collection.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl CollectionDefinition {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 194 |     /// Get the endpoint path for this collection
[INFO] [stdout] 195 |     pub fn endpoint_path(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn uses_json_schema(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_field_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn get_required_fields(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `can_transition_to` and `get_default_filter` are never used
[INFO] [stdout]   --> src/models/document.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl DocumentState {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 22 |     /// Check if a state transition is valid
[INFO] [stdout] 23 |     pub fn can_transition_to(&self, new_state: &DocumentState) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get_default_filter() -> BsonDocument {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/document.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl Document {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn update(&mut self, updater_id: String, fields: HashMap<String, serde_json::Value>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn change_state(&mut self, new_state: DocumentState, updater_id: String) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn get_field(&self, name: &str) -> Option<&serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn set_field(&mut self, name: String, value: serde_json::Value) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn remove_field(&mut self, name: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn is_public(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn can_modify(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DocumentMetadata` is never constructed
[INFO] [stdout]    --> src/models/document.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct DocumentMetadata {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_limits` is never used
[INFO] [stdout]   --> src/models/query.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl QueryParams {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn apply_limits(&mut self, max_limit: u64) -> AppResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryBuilder` is never constructed
[INFO] [stdout]    --> src/models/query.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct QueryBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/models/query.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl QueryBuilder {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 156 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn filter(mut self, key: &str, value: mongodb::bson::Bson) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn filter_doc(mut self, doc: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn sort(mut self, field: &str, direction: i32) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn sort_doc(mut self, sort: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn project(mut self, field: &str, include: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn projection_doc(mut self, projection: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn limit(mut self, limit: i64) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn skip(mut self, skip: u64) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn exclude_deleted(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn only_public(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn state_in(mut self, states: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn build_find_options(self) -> mongodb::options::FindOptions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn build_filter(self) -> BsonDocument {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextSearchParams` is never constructed
[INFO] [stdout]    --> src/models/query.rs:270:12
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub struct TextSearchParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_text_query` is never used
[INFO] [stdout]    --> src/models/query.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 286 | impl TextSearchParams {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 287 |     pub fn to_text_query(&self) -> BsonDocument {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AggregationBuilder` is never constructed
[INFO] [stdout]    --> src/models/query.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub struct AggregationBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/models/query.rs:325:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl AggregationBuilder {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 325 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn match_stage(mut self, filter: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn sort_stage(mut self, sort: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn project_stage(mut self, projection: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn limit_stage(mut self, limit: i64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn skip_stage(mut self, skip: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn group_stage(mut self, group: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn lookup_stage(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn unwind_stage(mut self, field: &str, preserve_null: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn add_stage(mut self, stage: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn build(self) -> Vec<BsonDocument> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `endpoint_path`, `get_bson_pipeline`, `has_lookup_enabled`, and `get_lookup_stages` are never used
[INFO] [stdout]    --> src/models/view.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ViewDefinition {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout]  36 |     /// Get the endpoint path for this view
[INFO] [stdout]  37 |     pub fn endpoint_path(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn get_bson_pipeline(&self) -> Result<Vec<BsonDocument>, mongodb::bson::ser::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn has_lookup_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_lookup_stages(&self) -> Vec<LookupStage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LookupStage` is never constructed
[INFO] [stdout]    --> src/models/view.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct LookupStage {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WritableViewConfig` is never constructed
[INFO] [stdout]    --> src/models/view.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct WritableViewConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LookupConfig` is never constructed
[INFO] [stdout]    --> src/models/view.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct LookupConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/services/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub config: AppConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_collection_by_endpoint`, `find_view`, `find_view_by_endpoint`, `collection_names`, and `view_names` are never used
[INFO] [stdout]   --> src/services/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl AppState {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn find_collection_by_endpoint(&self, endpoint: &str) -> Option<&CollectionDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn find_view(&self, name: &str) -> Option<&ViewDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn find_view_by_endpoint(&self, endpoint: &str) -> Option<&ViewDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn collection_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn view_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 53s
[INFO] running `Command { std: "docker" "inspect" "69af8e4ab4604e251b9e15964aa93abd5a4d73e486286da72ace945435af6070", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "69af8e4ab4604e251b9e15964aa93abd5a4d73e486286da72ace945435af6070", kill_on_drop: false }`
[INFO] [stdout] 69af8e4ab4604e251b9e15964aa93abd5a4d73e486286da72ace945435af6070
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f062d3bc2b417839f2bf350139b49d229d73bc2df0d74f0e47acf2c56a17a4cf
[INFO] running `Command { std: "docker" "start" "-a" "f062d3bc2b417839f2bf350139b49d229d73bc2df0d74f0e47acf2c56a17a4cf", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling fragile v2.0.1
[INFO] [stderr]    Compiling config v0.14.1
[INFO] [stderr]    Compiling mockall v0.12.1
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling trust-dns-proto v0.21.2
[INFO] [stderr]    Compiling async-compression v0.4.32
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling trust-dns-resolver v0.21.2
[INFO] [stderr]    Compiling mongodb v2.8.2
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling jsonschema v0.17.1
[INFO] [stderr]    Compiling utoipa-swagger-ui v6.0.0
[INFO] [stderr]    Compiling axum-extra v0.9.6
[INFO] [stderr]    Compiling crud-service-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/config.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bson::Bson`
[INFO] [stdout]  --> src/database/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bson::Bson;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bson`
[INFO] [stdout]  --> src/database/mongodb.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/database/mongodb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreateIndexOptions`
[INFO] [stdout]  --> src/db.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/handlers/collections.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/collections.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentState`
[INFO] [stdout]   --> src/handlers/collections.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |         document::{Document, DocumentState},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stdout]    --> src/handlers/collections.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stdout]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stdout]    --> src/handlers/collections.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use futures::stream::TryStreamExt;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::StatusCode`
[INFO] [stdout]  --> src/handlers/health.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/health.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::Json`
[INFO] [stdout]  --> src/handlers/joins.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     response::Json,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AppError`
[INFO] [stdout]  --> src/handlers/views.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     errors::{AppError, AppResult},
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::Next`
[INFO] [stdout]  --> src/middleware/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     middleware::Next,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/middleware/acl.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stdout]   --> src/middleware/acl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::middleware::auth::UserContext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/database/mongodb.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         schema: &Value,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/database/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     options: &HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             AppError::Validation(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |             AppError::Authentication(msg) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |             AppError::Authorization(msg) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             AppError::NotFound(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             AppError::Conflict(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             AppError::BadRequest(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]   --> src/handlers/collections.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_def`
[INFO] [stdout]   --> src/handlers/collections.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let collection_def = state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:203:11
[INFO] [stdout]     |
[INFO] [stdout] 203 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/collections.rs:205:11
[INFO] [stdout]     |
[INFO] [stdout] 205 |     Query(query): Query<QueryParams>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:226:10
[INFO] [stdout]     |
[INFO] [stdout] 226 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:269:11
[INFO] [stdout]     |
[INFO] [stdout] 269 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:290:11
[INFO] [stdout]     |
[INFO] [stdout] 290 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 311 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:312:28
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:332:10
[INFO] [stdout]     |
[INFO] [stdout] 332 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:352:10
[INFO] [stdout]     |
[INFO] [stdout] 352 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:360:11
[INFO] [stdout]     |
[INFO] [stdout] 360 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:371:11
[INFO] [stdout]     |
[INFO] [stdout] 371 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:372:10
[INFO] [stdout]     |
[INFO] [stdout] 372 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/handlers/joins.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |     State(state): State<AppState>,
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bson::Bson`
[INFO] [stdout]  --> src/database/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bson::Bson;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bson`
[INFO] [stdout]  --> src/database/mongodb.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/database/mongodb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreateIndexOptions`
[INFO] [stdout]  --> src/db.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/handlers/collections.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/collections.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentState`
[INFO] [stdout]   --> src/handlers/collections.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |         document::{Document, DocumentState},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stdout]    --> src/handlers/collections.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stdout]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stdout]    --> src/handlers/collections.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use futures::stream::TryStreamExt;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::StatusCode`
[INFO] [stdout]  --> src/handlers/health.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/health.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `db::Database` and `models::collection::CollectionDefinition`
[INFO] [stdout]   --> src/handlers/health.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         db::Database,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 64 |         models::collection::CollectionDefinition,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/handlers/health.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     use std::path::PathBuf;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::Json`
[INFO] [stdout]  --> src/handlers/joins.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     response::Json,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AppError`
[INFO] [stdout]  --> src/handlers/views.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     errors::{AppError, AppResult},
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::Next`
[INFO] [stdout]  --> src/middleware/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     middleware::Next,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/middleware/acl.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stdout]   --> src/middleware/acl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::middleware::auth::UserContext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeaderMap` and `HeaderValue`
[INFO] [stdout]    --> src/middleware/request_id.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |     use axum::http::{HeaderMap, HeaderValue};
[INFO] [stdout]     |                      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `batch_size` and `concurrent_operations` are never read
[INFO] [stdout]   --> tests/performance_tests.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct PerformanceConfig {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 16 |     document_count: usize,
[INFO] [stdout] 17 |     batch_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 18 |     concurrent_operations: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PerformanceConfig` 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: associated functions `product_schema`, `product_indexes`, `cleanup_test_collections`, `create_test_products_data`, `validate_document_structure`, and `measure_operation` are never used
[INFO] [stdout]    --> tests/test_utils.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl TestUtils {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn product_schema() -> Value {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn product_indexes() -> Vec<HashMap<String, Value>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn cleanup_test_collections(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn create_test_products_data(count: usize) -> Vec<HashMap<String, Value>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn validate_document_structure(doc: &crud_service_rust::models::document::Document) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub async fn measure_operation<F, T>(operation: F) -> (T, Duration)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/database/mongodb.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         schema: &Value,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Json`, `extract::Extension`, and `http::StatusCode`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     extract::Extension,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     routing::{get, post},
[INFO] [stdout] 8 |     Json, Router,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/main.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{info, warn};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/config.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bson::Bson`
[INFO] [stdout]  --> src/database/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bson::Bson;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bson`
[INFO] [stdout]  --> src/database/mongodb.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/database/mongodb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreateIndexOptions`
[INFO] [stdout]  --> src/db.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/handlers/collections.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/collections.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentState`
[INFO] [stdout]   --> src/handlers/collections.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |         document::{Document, DocumentState},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stdout]    --> src/handlers/collections.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stdout]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stdout]    --> src/handlers/collections.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use futures::stream::TryStreamExt;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::StatusCode`
[INFO] [stdout]  --> src/handlers/health.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/health.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::Json`
[INFO] [stdout]  --> src/handlers/joins.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     response::Json,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AppError`
[INFO] [stdout]  --> src/handlers/views.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     errors::{AppError, AppResult},
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::Next`
[INFO] [stdout]  --> src/middleware/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     middleware::Next,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/middleware/acl.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stdout]   --> src/middleware/acl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::middleware::auth::UserContext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::Database`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use db::Database;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Json`, `extract::Extension`, and `http::StatusCode`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     extract::Extension,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     routing::{get, post},
[INFO] [stdout] 8 |     Json, Router,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/main.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{info, warn};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bson::Bson`
[INFO] [stdout]  --> src/database/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bson::Bson;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bson`
[INFO] [stdout]  --> src/database/mongodb.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/database/mongodb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreateIndexOptions`
[INFO] [stdout]  --> src/db.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/handlers/collections.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/collections.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentState`
[INFO] [stdout]   --> src/handlers/collections.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |         document::{Document, DocumentState},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stdout]    --> src/handlers/collections.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stdout]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stdout]    --> src/handlers/collections.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     use futures::stream::TryStreamExt;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::StatusCode`
[INFO] [stdout]  --> src/handlers/health.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     http::StatusCode,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utoipa::OpenApi`
[INFO] [stdout]  --> src/handlers/health.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use utoipa::OpenApi;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `db::Database` and `models::collection::CollectionDefinition`
[INFO] [stdout]   --> src/handlers/health.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         db::Database,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 64 |         models::collection::CollectionDefinition,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/handlers/health.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     use std::path::PathBuf;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::Json`
[INFO] [stdout]  --> src/handlers/joins.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     response::Json,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AppError`
[INFO] [stdout]  --> src/handlers/views.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     errors::{AppError, AppResult},
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `middleware::Next`
[INFO] [stdout]  --> src/middleware/auth.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     middleware::Next,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/middleware/acl.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stdout]   --> src/middleware/acl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::middleware::auth::UserContext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HeaderMap` and `HeaderValue`
[INFO] [stdout]    --> src/middleware/request_id.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |     use axum::http::{HeaderMap, HeaderValue};
[INFO] [stdout]     |                      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::Database`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use db::Database;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/database/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     options: &HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             AppError::Validation(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |             AppError::Authentication(msg) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |             AppError::Authorization(msg) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             AppError::NotFound(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             AppError::Conflict(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             AppError::BadRequest(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]   --> src/handlers/collections.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_def`
[INFO] [stdout]   --> src/handlers/collections.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let collection_def = state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:203:11
[INFO] [stdout]     |
[INFO] [stdout] 203 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/collections.rs:205:11
[INFO] [stdout]     |
[INFO] [stdout] 205 |     Query(query): Query<QueryParams>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:226:10
[INFO] [stdout]     |
[INFO] [stdout] 226 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:269:11
[INFO] [stdout]     |
[INFO] [stdout] 269 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:290:11
[INFO] [stdout]     |
[INFO] [stdout] 290 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 311 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:312:28
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:332:10
[INFO] [stdout]     |
[INFO] [stdout] 332 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:352:10
[INFO] [stdout]     |
[INFO] [stdout] 352 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:360:11
[INFO] [stdout]     |
[INFO] [stdout] 360 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:371:11
[INFO] [stdout]     |
[INFO] [stdout] 371 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:372:10
[INFO] [stdout]     |
[INFO] [stdout] 372 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/handlers/joins.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |     State(state): State<AppState>,
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/database/mongodb.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         schema: &Value,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/database/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     options: &HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             AppError::Validation(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |             AppError::Authentication(msg) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |             AppError::Authorization(msg) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             AppError::NotFound(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             AppError::Conflict(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             AppError::BadRequest(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]   --> src/handlers/collections.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_def`
[INFO] [stdout]   --> src/handlers/collections.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let collection_def = state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:203:11
[INFO] [stdout]     |
[INFO] [stdout] 203 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/collections.rs:205:11
[INFO] [stdout]     |
[INFO] [stdout] 205 |     Query(query): Query<QueryParams>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:226:10
[INFO] [stdout]     |
[INFO] [stdout] 226 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:269:11
[INFO] [stdout]     |
[INFO] [stdout] 269 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:290:11
[INFO] [stdout]     |
[INFO] [stdout] 290 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 311 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:312:28
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:332:10
[INFO] [stdout]     |
[INFO] [stdout] 332 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:352:10
[INFO] [stdout]     |
[INFO] [stdout] 352 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:360:11
[INFO] [stdout]     |
[INFO] [stdout] 360 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:371:11
[INFO] [stdout]     |
[INFO] [stdout] 371 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:372:10
[INFO] [stdout]     |
[INFO] [stdout] 372 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/handlers/joins.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |     State(state): State<AppState>,
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/config.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | impl DatabaseType {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 209 |     /// Returns true if this database type is document-based
[INFO] [stdout] 210 |     pub fn is_document_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_sql_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn is_key_value_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn is_search_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_wide_column_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn uses_odbc(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn default_port(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/database/mod.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub trait DatabaseAdapter: Send + Sync {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 30 |     async fn update_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     async fn delete_by_id(&self, collection: &str, id: &str) -> AppResult<bool>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     async fn count(&self, collection: &str, query_params: &QueryParams) -> AppResult<u64>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     async fn collection_exists(&self, collection_name: &str) -> AppResult<bool>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     async fn aggregate(&self, collection: &str, pipeline: &[Value]) -> AppResult<Vec<Document>>;
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn database_name(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn database_type(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `database_name` is never read
[INFO] [stdout]   --> src/database/mongodb.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MongoAdapter {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 13 |     database: Database,
[INFO] [stdout] 14 |     database_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `database`, `create_indexes`, and `health_check` are never used
[INFO] [stdout]    --> src/db.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Database {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn database(&self) -> &MongoDatabase {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn create_indexes(&self, collection_def: &CollectionDefinition) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn health_check(&self) -> AppResult<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_index_model` is never used
[INFO] [stdout]    --> src/db.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn create_index_model(index_def: &IndexDefinition) -> AppResult<IndexModel> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/errors.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Authentication(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Authorization(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Conflict(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     Excel(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Timeout,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     RateLimit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     InvalidStateTransition { from: String, to: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     Index(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     UnsupportedFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     FileTooLarge { size: usize, max: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` 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 associated functions are never used
[INFO] [stdout]    --> src/errors.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl AppError {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 225 |     pub fn validation<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn unauthorized<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn forbidden<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn conflict<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn duplicate_key<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn invalid_state_transition<T: Into<String>>(from: T, to: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn unsupported_format<T: Into<String>>(format: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn file_too_large(size: usize, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `roles`, and `permissions` are never read
[INFO] [stdout]    --> src/middleware/auth.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct UserContext {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 139 |     pub user_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 140 |     pub roles: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 141 |     pub permissions: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserContext` 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: associated items `anonymous`, `has_role`, `has_permission`, and `is_anonymous` are never used
[INFO] [stdout]    --> src/middleware/auth.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl UserContext {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 145 |     /// Create an anonymous user context
[INFO] [stdout] 146 |     pub fn anonymous() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn has_role(&self, role: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn has_permission(&self, permission: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn is_anonymous(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_user_context` is never used
[INFO] [stdout]    --> src/middleware/auth.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_user_context(request: &Request) -> UserContext {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `row_filter`, `read_columns`, and `write_columns` are never read
[INFO] [stdout]    --> src/middleware/acl.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct AclContext {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 147 |     /// Row-level filter to apply to queries
[INFO] [stdout] 148 |     pub row_filter: Option<BsonDocument>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub read_columns: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub write_columns: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AclContext` 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 associated items are never used
[INFO] [stdout]    --> src/middleware/acl.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl AclContext {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 158 |     /// Create an empty ACL context (no restrictions)
[INFO] [stdout] 159 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn apply_row_filter(&self, mut filter: BsonDocument) -> BsonDocument {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn create_read_projection(&self) -> Option<BsonDocument> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn filter_read_fields(&self, mut document: HashMap<String, serde_json::Value>) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn validate_write_fields(&self, fields: &HashMap<String, serde_json::Value>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn can_read_field(&self, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn can_write_field(&self, field_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_acl_context` is never used
[INFO] [stdout]    --> src/middleware/acl.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn get_acl_context(request: &Request) -> AclContext {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/middleware/request_id.rs:108:22
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct RequestId(pub String);
[INFO] [stdout]     |            --------- ^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `RequestId` 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: method `get` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl RequestId {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 111 |     pub fn get(&self) -> &str {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_request_id` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn get_request_id(request: &Request) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_request_id_from_headers` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn extract_request_id_from_headers(request: &Request) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_message` is never used
[INFO] [stdout]   --> src/models/api.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<T> ApiResponse<T> {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn with_message(data: T, message: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_pagination` is never used
[INFO] [stdout]   --> src/models/api.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T> ListResponse<T> {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_pagination(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct StateChangeResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_errors` are never used
[INFO] [stdout]    --> src/models/api.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl StateChangeResponse {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] 145 |     pub fn new(modified: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn with_errors(modified: u64, errors: Vec<StateChangeError>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct StateChangeError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeRequest` is never constructed
[INFO] [stdout]    --> src/models/api.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct StateChangeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BulkRequest` is never constructed
[INFO] [stdout]    --> src/models/api.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct BulkRequest<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BulkOperation` is never constructed
[INFO] [stdout]    --> src/models/api.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct BulkOperation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BulkOperationType` is never used
[INFO] [stdout]    --> src/models/api.rs:191:10
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub enum BulkOperationType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportFormat` is never used
[INFO] [stdout]    --> src/models/api.rs:201:10
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub enum ExportFormat {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct ImportResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/models/api.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl ImportResponse {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub struct ImportError {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct ValidationResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `valid` and `invalid` are never used
[INFO] [stdout]    --> src/models/api.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl ValidationResponse {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 264 |     pub fn valid() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn invalid(errors: Vec<ValidationError>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct ValidationError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `endpoint_path`, `uses_json_schema`, `get_field_names`, and `get_required_fields` are never used
[INFO] [stdout]    --> src/models/collection.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl CollectionDefinition {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 194 |     /// Get the endpoint path for this collection
[INFO] [stdout] 195 |     pub fn endpoint_path(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn uses_json_schema(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_field_names(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn get_required_fields(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `can_transition_to` and `get_default_filter` are never used
[INFO] [stdout]   --> src/models/document.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl DocumentState {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 22 |     /// Check if a state transition is valid
[INFO] [stdout] 23 |     pub fn can_transition_to(&self, new_state: &DocumentState) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get_default_filter() -> BsonDocument {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/document.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl Document {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn update(&mut self, updater_id: String, fields: HashMap<String, serde_json::Value>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn change_state(&mut self, new_state: DocumentState, updater_id: String) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn get_field(&self, name: &str) -> Option<&serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn set_field(&mut self, name: String, value: serde_json::Value) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn remove_field(&mut self, name: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn is_public(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn can_modify(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DocumentMetadata` is never constructed
[INFO] [stdout]    --> src/models/document.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct DocumentMetadata {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_limits` is never used
[INFO] [stdout]   --> src/models/query.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl QueryParams {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn apply_limits(&mut self, max_limit: u64) -> AppResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryBuilder` is never constructed
[INFO] [stdout]    --> src/models/query.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct QueryBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/models/query.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl QueryBuilder {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 156 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn filter(mut self, key: &str, value: mongodb::bson::Bson) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn filter_doc(mut self, doc: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn sort(mut self, field: &str, direction: i32) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn sort_doc(mut self, sort: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn project(mut self, field: &str, include: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn projection_doc(mut self, projection: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn limit(mut self, limit: i64) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn skip(mut self, skip: u64) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn exclude_deleted(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn only_public(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn state_in(mut self, states: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn build_find_options(self) -> mongodb::options::FindOptions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn build_filter(self) -> BsonDocument {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextSearchParams` is never constructed
[INFO] [stdout]    --> src/models/query.rs:270:12
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub struct TextSearchParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_text_query` is never used
[INFO] [stdout]    --> src/models/query.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 286 | impl TextSearchParams {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 287 |     pub fn to_text_query(&self) -> BsonDocument {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AggregationBuilder` is never constructed
[INFO] [stdout]    --> src/models/query.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub struct AggregationBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/models/query.rs:325:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl AggregationBuilder {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 325 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn match_stage(mut self, filter: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn sort_stage(mut self, sort: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn project_stage(mut self, projection: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn limit_stage(mut self, limit: i64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn skip_stage(mut self, skip: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn group_stage(mut self, group: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn lookup_stage(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn unwind_stage(mut self, field: &str, preserve_null: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn add_stage(mut self, stage: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn build(self) -> Vec<BsonDocument> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `endpoint_path`, `get_bson_pipeline`, `has_lookup_enabled`, and `get_lookup_stages` are never used
[INFO] [stdout]    --> src/models/view.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ViewDefinition {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout]  36 |     /// Get the endpoint path for this view
[INFO] [stdout]  37 |     pub fn endpoint_path(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn get_bson_pipeline(&self) -> Result<Vec<BsonDocument>, mongodb::bson::ser::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn has_lookup_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_lookup_stages(&self) -> Vec<LookupStage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LookupStage` is never constructed
[INFO] [stdout]    --> src/models/view.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct LookupStage {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WritableViewConfig` is never constructed
[INFO] [stdout]    --> src/models/view.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct WritableViewConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LookupConfig` is never constructed
[INFO] [stdout]    --> src/models/view.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct LookupConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/services/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub config: AppConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_collection_by_endpoint`, `find_view`, `find_view_by_endpoint`, `collection_names`, and `view_names` are never used
[INFO] [stdout]   --> src/services/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl AppState {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn find_collection_by_endpoint(&self, endpoint: &str) -> Option<&CollectionDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn find_view(&self, name: &str) -> Option<&ViewDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn find_view_by_endpoint(&self, endpoint: &str) -> Option<&ViewDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn collection_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn view_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schema`
[INFO] [stdout]    --> src/database/mongodb.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         schema: &Value,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/database/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     options: &HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             AppError::Validation(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |             AppError::Authentication(msg) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |             AppError::Authorization(msg) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             AppError::NotFound(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             AppError::Conflict(msg) => {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             AppError::BadRequest(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/errors.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]   --> src/handlers/collections.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_def`
[INFO] [stdout]   --> src/handlers/collections.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let collection_def = state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:122:11
[INFO] [stdout]     |
[INFO] [stdout] 122 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:203:11
[INFO] [stdout]     |
[INFO] [stdout] 203 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:204:10
[INFO] [stdout]     |
[INFO] [stdout] 204 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/collections.rs:205:11
[INFO] [stdout]     |
[INFO] [stdout] 205 |     Query(query): Query<QueryParams>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:226:10
[INFO] [stdout]     |
[INFO] [stdout] 226 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:269:11
[INFO] [stdout]     |
[INFO] [stdout] 269 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:270:10
[INFO] [stdout]     |
[INFO] [stdout] 270 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:290:11
[INFO] [stdout]     |
[INFO] [stdout] 290 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:291:10
[INFO] [stdout]     |
[INFO] [stdout] 291 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 311 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document_id`
[INFO] [stdout]    --> src/handlers/collections.rs:312:28
[INFO] [stdout]     |
[INFO] [stdout] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stdout]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:331:11
[INFO] [stdout]     |
[INFO] [stdout] 331 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:332:10
[INFO] [stdout]     |
[INFO] [stdout] 332 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:351:11
[INFO] [stdout]     |
[INFO] [stdout] 351 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:352:10
[INFO] [stdout]     |
[INFO] [stdout] 352 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:360:11
[INFO] [stdout]     |
[INFO] [stdout] 360 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:361:10
[INFO] [stdout]     |
[INFO] [stdout] 361 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/handlers/collections.rs:371:11
[INFO] [stdout]     |
[INFO] [stdout] 371 |     State(state): State<AppState>,
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection_name`
[INFO] [stdout]    --> src/handlers/collections.rs:372:10
[INFO] [stdout]     |
[INFO] [stdout] 372 |     Path(collection_name): Path<String>,
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/handlers/collections.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/handlers/joins.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 |     State(state): State<AppState>,
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/config.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | impl DatabaseType {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 209 |     /// Returns true if this database type is document-based
[INFO] [stdout] 210 |     pub fn is_document_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_sql_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn is_key_value_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn is_search_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_wide_column_database(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn uses_odbc(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn default_port(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/database/mod.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub trait DatabaseAdapter: Send + Sync {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 30 |     async fn update_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     async fn delete_by_id(&self, collection: &str, id: &str) -> AppResult<bool>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     async fn count(&self, collection: &str, query_params: &QueryParams) -> AppResult<u64>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     async fn collection_exists(&self, collection_name: &str) -> AppResult<bool>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     async fn aggregate(&self, collection: &str, pipeline: &[Value]) -> AppResult<Vec<Document>>;
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn database_name(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn database_type(&self) -> &str;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `db_name` is never read
[INFO] [stdout]    --> src/database/mod.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct MockDatabaseAdapter {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] 160 |     db_name: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `database_name` is never read
[INFO] [stdout]   --> src/database/mongodb.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MongoAdapter {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 13 |     database: Database,
[INFO] [stdout] 14 |     database_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `database`, `create_indexes`, and `health_check` are never used
[INFO] [stdout]    --> src/db.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Database {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn database(&self) -> &MongoDatabase {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn create_indexes(&self, collection_def: &CollectionDefinition) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn health_check(&self) -> AppResult<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/errors.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Conflict(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     Excel(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Timeout,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     RateLimit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     Index(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     UnsupportedFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     FileTooLarge { size: usize, max: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `conflict`, `unsupported_format`, and `file_too_large` are never used
[INFO] [stdout]    --> src/errors.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl AppError {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn conflict<T: Into<String>>(message: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn unsupported_format<T: Into<String>>(format: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn file_too_large(size: usize, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_user_context` is never used
[INFO] [stdout]    --> src/middleware/auth.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_user_context(request: &Request) -> UserContext {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty` and `filter_read_fields` are never used
[INFO] [stdout]    --> src/middleware/acl.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl AclContext {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 158 |     /// Create an empty ACL context (no restrictions)
[INFO] [stdout] 159 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn filter_read_fields(&self, mut document: HashMap<String, serde_json::Value>) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_acl_context` is never used
[INFO] [stdout]    --> src/middleware/acl.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn get_acl_context(request: &Request) -> AclContext {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_request_id` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn get_request_id(request: &Request) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_request_id_from_headers` is never used
[INFO] [stdout]    --> src/middleware/request_id.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn extract_request_id_from_headers(request: &Request) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct StateChangeResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_errors` are never used
[INFO] [stdout]    --> src/models/api.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl StateChangeResponse {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] 145 |     pub fn new(modified: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn with_errors(modified: u64, errors: Vec<StateChangeError>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct StateChangeError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateChangeRequest` is never constructed
[INFO] [stdout]    --> src/models/api.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct StateChangeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BulkRequest` is never constructed
[INFO] [stdout]    --> src/models/api.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct BulkRequest<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BulkOperation` is never constructed
[INFO] [stdout]    --> src/models/api.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct BulkOperation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BulkOperationType` is never used
[INFO] [stdout]    --> src/models/api.rs:191:10
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub enum BulkOperationType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct ImportResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/models/api.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl ImportResponse {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImportError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub struct ImportError {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationResponse` is never constructed
[INFO] [stdout]    --> src/models/api.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct ValidationResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `valid` and `invalid` are never used
[INFO] [stdout]    --> src/models/api.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl ValidationResponse {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 264 |     pub fn valid() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn invalid(errors: Vec<ValidationError>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationError` is never constructed
[INFO] [stdout]    --> src/models/api.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct ValidationError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `endpoint_path` and `uses_json_schema` are never used
[INFO] [stdout]    --> src/models/collection.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl CollectionDefinition {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 194 |     /// Get the endpoint path for this collection
[INFO] [stdout] 195 |     pub fn endpoint_path(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn uses_json_schema(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_default_filter` is never used
[INFO] [stdout]   --> src/models/document.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl DocumentState {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get_default_filter() -> BsonDocument {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_field`, `remove_field`, `is_public`, and `can_modify` are never used
[INFO] [stdout]    --> src/models/document.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl Document {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn set_field(&mut self, name: String, value: serde_json::Value) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn remove_field(&mut self, name: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn is_public(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn can_modify(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DocumentMetadata` is never constructed
[INFO] [stdout]    --> src/models/document.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct DocumentMetadata {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `projection` and `skip` are never read
[INFO] [stdout]    --> src/models/query.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct QueryBuilder {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 150 |     projection: Option<BsonDocument>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 151 |     limit: Option<i64>,
[INFO] [stdout] 152 |     skip: Option<u64>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/query.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl QueryBuilder {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn filter_doc(mut self, doc: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn sort_doc(mut self, sort: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn project(mut self, field: &str, include: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn projection_doc(mut self, projection: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn skip(mut self, skip: u64) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn only_public(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn state_in(mut self, states: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn build_find_options(self) -> mongodb::options::FindOptions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `project_stage`, `skip_stage`, `group_stage`, `lookup_stage`, `unwind_stage`, and `add_stage` are never used
[INFO] [stdout]    --> src/models/query.rs:341:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl AggregationBuilder {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn project_stage(mut self, projection: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn skip_stage(mut self, skip: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn group_stage(mut self, group: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn lookup_stage(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn unwind_stage(mut self, field: &str, preserve_null: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn add_stage(mut self, stage: BsonDocument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_lookup_enabled` is never used
[INFO] [stdout]   --> src/models/view.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ViewDefinition {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn has_lookup_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WritableViewConfig` is never constructed
[INFO] [stdout]    --> src/models/view.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct WritableViewConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LookupConfig` is never constructed
[INFO] [stdout]    --> src/models/view.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct LookupConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/services/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub config: AppConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_collection_by_endpoint`, `find_view`, `find_view_by_endpoint`, `collection_names`, and `view_names` are never used
[INFO] [stdout]   --> src/services/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl AppState {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn find_collection_by_endpoint(&self, endpoint: &str) -> Option<&CollectionDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn find_view(&self, name: &str) -> Option<&ViewDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn find_view_by_endpoint(&self, endpoint: &str) -> Option<&ViewDefinition> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn collection_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn view_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 40s
[INFO] running `Command { std: "docker" "inspect" "f062d3bc2b417839f2bf350139b49d229d73bc2df0d74f0e47acf2c56a17a4cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f062d3bc2b417839f2bf350139b49d229d73bc2df0d74f0e47acf2c56a17a4cf", kill_on_drop: false }`
[INFO] [stdout] f062d3bc2b417839f2bf350139b49d229d73bc2df0d74f0e47acf2c56a17a4cf
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 88bc777fa1b76d21af3c6bc6cd38531289de8ca985ab29c87d0d446524528f6d
[INFO] running `Command { std: "docker" "start" "-a" "88bc777fa1b76d21af3c6bc6cd38531289de8ca985ab29c87d0d446524528f6d", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/config.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bson::Bson`
[INFO] [stderr]  --> src/database/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use bson::Bson;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Bson`
[INFO] [stderr]  --> src/database/mongodb.rs:7:32
[INFO] [stderr]   |
[INFO] [stderr] 7 | use bson::{doc, oid::ObjectId, Bson, Document as BsonDocument};
[INFO] [stderr]   |                                ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::Utc`
[INFO] [stderr]  --> src/database/mongodb.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use chrono::Utc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CreateIndexOptions`
[INFO] [stderr]  --> src/db.rs:3:30
[INFO] [stderr]   |
[INFO] [stderr] 3 |     options::{ClientOptions, CreateIndexOptions, IndexOptions},
[INFO] [stderr]   |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde::Deserialize`
[INFO] [stderr]  --> src/handlers/collections.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use serde::Deserialize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `utoipa::OpenApi`
[INFO] [stderr]  --> src/handlers/collections.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use utoipa::OpenApi;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DocumentState`
[INFO] [stderr]   --> src/handlers/collections.rs:15:30
[INFO] [stderr]    |
[INFO] [stderr] 15 |         document::{Document, DocumentState},
[INFO] [stderr]    |                              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Document as BsonDocument` and `doc`
[INFO] [stderr]    --> src/handlers/collections.rs:170:25
[INFO] [stderr]     |
[INFO] [stderr] 170 |     use mongodb::bson::{doc, Document as BsonDocument};
[INFO] [stderr]     |                         ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures::stream::TryStreamExt`
[INFO] [stderr]    --> src/handlers/collections.rs:171:9
[INFO] [stderr]     |
[INFO] [stderr] 171 |     use futures::stream::TryStreamExt;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `http::StatusCode`
[INFO] [stderr]  --> src/handlers/health.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     http::StatusCode,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `utoipa::OpenApi`
[INFO] [stderr]  --> src/handlers/health.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use utoipa::OpenApi;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `response::Json`
[INFO] [stderr]  --> src/handlers/joins.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     response::Json,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AppError`
[INFO] [stderr]  --> src/handlers/views.rs:7:14
[INFO] [stderr]   |
[INFO] [stderr] 7 |     errors::{AppError, AppResult},
[INFO] [stderr]   |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `middleware::Next`
[INFO] [stderr]  --> src/middleware/auth.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     middleware::Next,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> src/middleware/acl.rs:7:13
[INFO] [stderr]   |
[INFO] [stderr] 7 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::middleware::auth::UserContext`
[INFO] [stderr]   --> src/middleware/acl.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::middleware::auth::UserContext;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `schema`
[INFO] [stderr]    --> src/database/mongodb.rs:163:9
[INFO] [stderr]     |
[INFO] [stderr] 163 |         schema: &Value,
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_schema`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/database/mod.rs:81:5
[INFO] [stderr]    |
[INFO] [stderr] 81 |     options: &HashMap<String, String>,
[INFO] [stderr]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:115:34
[INFO] [stderr]     |
[INFO] [stderr] 115 |             AppError::Validation(msg) => {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:118:38
[INFO] [stderr]     |
[INFO] [stderr] 118 |             AppError::Authentication(msg) => {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:121:37
[INFO] [stderr]     |
[INFO] [stderr] 121 |             AppError::Authorization(msg) => {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:124:32
[INFO] [stderr]     |
[INFO] [stderr] 124 |             AppError::NotFound(msg) => {
[INFO] [stderr]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:127:32
[INFO] [stderr]     |
[INFO] [stderr] 127 |             AppError::Conflict(msg) => {
[INFO] [stderr]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:130:34
[INFO] [stderr]     |
[INFO] [stderr] 130 |             AppError::BadRequest(msg) => {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:133:36
[INFO] [stderr]     |
[INFO] [stderr] 133 |             AppError::DuplicateKey(msg) => {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]    --> src/errors.rs:144:34
[INFO] [stderr]     |
[INFO] [stderr] 144 |             AppError::JsonSchema(msg) => {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `document_id`
[INFO] [stderr]   --> src/handlers/collections.rs:95:28
[INFO] [stderr]    |
[INFO] [stderr] 95 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_def`
[INFO] [stderr]   --> src/handlers/collections.rs:98:9
[INFO] [stderr]    |
[INFO] [stderr] 98 |     let collection_def = state
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_def`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:122:11
[INFO] [stderr]     |
[INFO] [stderr] 122 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:123:11
[INFO] [stderr]     |
[INFO] [stderr] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `document_id`
[INFO] [stderr]    --> src/handlers/collections.rs:123:28
[INFO] [stderr]     |
[INFO] [stderr] 123 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `payload`
[INFO] [stderr]    --> src/handlers/collections.rs:124:10
[INFO] [stderr]     |
[INFO] [stderr] 124 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stderr]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:145:11
[INFO] [stderr]     |
[INFO] [stderr] 145 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:146:11
[INFO] [stderr]     |
[INFO] [stderr] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `document_id`
[INFO] [stderr]    --> src/handlers/collections.rs:146:28
[INFO] [stderr]     |
[INFO] [stderr] 146 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:203:11
[INFO] [stderr]     |
[INFO] [stderr] 203 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:204:10
[INFO] [stderr]     |
[INFO] [stderr] 204 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `query`
[INFO] [stderr]    --> src/handlers/collections.rs:205:11
[INFO] [stderr]     |
[INFO] [stderr] 205 |     Query(query): Query<QueryParams>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:225:11
[INFO] [stderr]     |
[INFO] [stderr] 225 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:226:10
[INFO] [stderr]     |
[INFO] [stderr] 226 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:247:11
[INFO] [stderr]     |
[INFO] [stderr] 247 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:248:10
[INFO] [stderr]     |
[INFO] [stderr] 248 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:269:11
[INFO] [stderr]     |
[INFO] [stderr] 269 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:270:10
[INFO] [stderr]     |
[INFO] [stderr] 270 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:290:11
[INFO] [stderr]     |
[INFO] [stderr] 290 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:291:10
[INFO] [stderr]     |
[INFO] [stderr] 291 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:311:11
[INFO] [stderr]     |
[INFO] [stderr] 311 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:312:11
[INFO] [stderr]     |
[INFO] [stderr] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `document_id`
[INFO] [stderr]    --> src/handlers/collections.rs:312:28
[INFO] [stderr]     |
[INFO] [stderr] 312 |     Path((collection_name, document_id)): Path<(String, String)>,
[INFO] [stderr]     |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:331:11
[INFO] [stderr]     |
[INFO] [stderr] 331 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:332:10
[INFO] [stderr]     |
[INFO] [stderr] 332 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:351:11
[INFO] [stderr]     |
[INFO] [stderr] 351 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:352:10
[INFO] [stderr]     |
[INFO] [stderr] 352 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:360:11
[INFO] [stderr]     |
[INFO] [stderr] 360 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:361:10
[INFO] [stderr]     |
[INFO] [stderr] 361 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/handlers/collections.rs:371:11
[INFO] [stderr]     |
[INFO] [stderr] 371 |     State(state): State<AppState>,
[INFO] [stderr]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `collection_name`
[INFO] [stderr]    --> src/handlers/collections.rs:372:10
[INFO] [stderr]     |
[INFO] [stderr] 372 |     Path(collection_name): Path<String>,
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `payload`
[INFO] [stderr]    --> src/handlers/collections.rs:373:10
[INFO] [stderr]     |
[INFO] [stderr] 373 |     Json(payload): Json<HashMap<String, serde_json::Value>>,
[INFO] [stderr]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]   --> src/handlers/joins.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 |     State(state): State<AppState>,
[INFO] [stderr]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: `crud-service-rust` (lib) generated 60 warnings (run `cargo fix --lib -p crud-service-rust` to apply 60 suggestions)
[INFO] [stderr] warning: unused imports: `Json`, `extract::Extension`, and `http::StatusCode`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 |     extract::Extension,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 6 |     http::StatusCode,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 7 |     routing::{get, post},
[INFO] [stderr] 8 |     Json, Router,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `warn`
[INFO] [stderr]   --> src/main.rs:16:21
[INFO] [stderr]    |
[INFO] [stderr] 16 | use tracing::{info, warn};
[INFO] [stderr]    |                     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/config.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `db::Database`
[INFO] [stderr]   --> src/main.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | use db::Database;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/config.rs:210:12
[INFO] [stderr]     |
[INFO] [stderr] 208 | impl DatabaseType {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] 209 |     /// Returns true if this database type is document-based
[INFO] [stderr] 210 |     pub fn is_document_database(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     pub fn is_sql_database(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 236 |     pub fn is_key_value_database(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn is_search_database(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn is_wide_column_database(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn uses_odbc(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn default_port(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> src/database/mod.rs:30:14
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub trait DatabaseAdapter: Send + Sync {
[INFO] [stderr]    |           --------------- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 30 |     async fn update_by_id(
[INFO] [stderr]    |              ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     async fn delete_by_id(&self, collection: &str, id: &str) -> AppResult<bool>;
[INFO] [stderr]    |              ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     async fn count(&self, collection: &str, query_params: &QueryParams) -> AppResult<u64>;
[INFO] [stderr]    |              ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 61 |     async fn collection_exists(&self, collection_name: &str) -> AppResult<bool>;
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     async fn aggregate(&self, collection: &str, pipeline: &[Value]) -> AppResult<Vec<Document>>;
[INFO] [stderr]    |              ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     fn database_name(&self) -> &str;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 |     fn database_type(&self) -> &str;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `database_name` is never read
[INFO] [stderr]   --> src/database/mongodb.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct MongoAdapter {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 13 |     database: Database,
[INFO] [stderr] 14 |     database_name: String,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `database`, `create_indexes`, and `health_check` are never used
[INFO] [stderr]    --> src/db.rs:53:12
[INFO] [stderr]     |
[INFO] [stderr]  20 | impl Database {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  53 |     pub fn database(&self) -> &MongoDatabase {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  61 |     pub async fn create_indexes(&self, collection_def: &CollectionDefinition) -> AppResult<()> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub async fn health_check(&self) -> AppResult<bool> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_index_model` is never used
[INFO] [stderr]    --> src/db.rs:162:4
[INFO] [stderr]     |
[INFO] [stderr] 162 | fn create_index_model(index_def: &IndexDefinition) -> AppResult<IndexModel> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/errors.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum AppError {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 29 |     Authentication(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     Authorization(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     Conflict(String),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     Excel(String),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |     Timeout,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     RateLimit,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 74 |     InvalidStateTransition { from: String, to: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     Index(String),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     UnsupportedFormat(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     FileTooLarge { size: usize, max: usize },
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated functions are never used
[INFO] [stderr]    --> src/errors.rs:225:12
[INFO] [stderr]     |
[INFO] [stderr] 224 | impl AppError {
[INFO] [stderr]     | ------------- associated functions in this implementation
[INFO] [stderr] 225 |     pub fn validation<T: Into<String>>(message: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn unauthorized<T: Into<String>>(message: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 245 |     pub fn forbidden<T: Into<String>>(message: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 249 |     pub fn conflict<T: Into<String>>(message: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 253 |     pub fn duplicate_key<T: Into<String>>(message: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 257 |     pub fn invalid_state_transition<T: Into<String>>(from: T, to: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn unsupported_format<T: Into<String>>(format: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 268 |     pub fn file_too_large(size: usize, max: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_id`, `roles`, and `permissions` are never read
[INFO] [stderr]    --> src/middleware/auth.rs:139:9
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub struct UserContext {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] 139 |     pub user_id: String,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 140 |     pub roles: Vec<String>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 141 |     pub permissions: Vec<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UserContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `anonymous`, `has_role`, `has_permission`, and `is_anonymous` are never used
[INFO] [stderr]    --> src/middleware/auth.rs:146:12
[INFO] [stderr]     |
[INFO] [stderr] 144 | impl UserContext {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 145 |     /// Create an anonymous user context
[INFO] [stderr] 146 |     pub fn anonymous() -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     pub fn has_role(&self, role: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub fn has_permission(&self, permission: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn is_anonymous(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_user_context` is never used
[INFO] [stderr]    --> src/middleware/auth.rs:171:8
[INFO] [stderr]     |
[INFO] [stderr] 171 | pub fn get_user_context(request: &Request) -> UserContext {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `row_filter`, `read_columns`, and `write_columns` are never read
[INFO] [stderr]    --> src/middleware/acl.rs:148:9
[INFO] [stderr]     |
[INFO] [stderr] 146 | pub struct AclContext {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 147 |     /// Row-level filter to apply to queries
[INFO] [stderr] 148 |     pub row_filter: Option<BsonDocument>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 151 |     pub read_columns: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 154 |     pub write_columns: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `AclContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/middleware/acl.rs:159:12
[INFO] [stderr]     |
[INFO] [stderr] 157 | impl AclContext {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 158 |     /// Create an empty ACL context (no restrictions)
[INFO] [stderr] 159 |     pub fn empty() -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 168 |     pub fn apply_row_filter(&self, mut filter: BsonDocument) -> BsonDocument {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 186 |     pub fn create_read_projection(&self) -> Option<BsonDocument> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn filter_read_fields(&self, mut document: HashMap<String, serde_json::Value>) -> HashMap<String, serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 223 |     pub fn validate_write_fields(&self, fields: &HashMap<String, serde_json::Value>) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 242 |     pub fn can_read_field(&self, field_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 256 |     pub fn can_write_field(&self, field_name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_acl_context` is never used
[INFO] [stderr]    --> src/middleware/acl.rs:271:8
[INFO] [stderr]     |
[INFO] [stderr] 271 | pub fn get_acl_context(request: &Request) -> AclContext {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/middleware/request_id.rs:108:22
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub struct RequestId(pub String);
[INFO] [stderr]     |            --------- ^^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            field in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider removing this field
[INFO] [stderr]     = note: `RequestId` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get` is never used
[INFO] [stderr]    --> src/middleware/request_id.rs:111:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl RequestId {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] 111 |     pub fn get(&self) -> &str {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_request_id` is never used
[INFO] [stderr]    --> src/middleware/request_id.rs:117:8
[INFO] [stderr]     |
[INFO] [stderr] 117 | pub fn get_request_id(request: &Request) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_request_id_from_headers` is never used
[INFO] [stderr]    --> src/middleware/request_id.rs:125:8
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub fn extract_request_id_from_headers(request: &Request) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `with_message` is never used
[INFO] [stderr]   --> src/models/api.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl<T> ApiResponse<T> {
[INFO] [stderr]    | ---------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn with_message(data: T, message: String) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `with_pagination` is never used
[INFO] [stderr]   --> src/models/api.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl<T> ListResponse<T> {
[INFO] [stderr]    | ----------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub fn with_pagination(
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StateChangeResponse` is never constructed
[INFO] [stderr]    --> src/models/api.rs:139:12
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub struct StateChangeResponse {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `with_errors` are never used
[INFO] [stderr]    --> src/models/api.rs:145:12
[INFO] [stderr]     |
[INFO] [stderr] 144 | impl StateChangeResponse {
[INFO] [stderr]     | ------------------------ associated functions in this implementation
[INFO] [stderr] 145 |     pub fn new(modified: u64) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn with_errors(modified: u64, errors: Vec<StateChangeError>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StateChangeError` is never constructed
[INFO] [stderr]    --> src/models/api.rs:159:12
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub struct StateChangeError {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StateChangeRequest` is never constructed
[INFO] [stderr]    --> src/models/api.rs:168:12
[INFO] [stderr]     |
[INFO] [stderr] 168 | pub struct StateChangeRequest {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BulkRequest` is never constructed
[INFO] [stderr]    --> src/models/api.rs:176:12
[INFO] [stderr]     |
[INFO] [stderr] 176 | pub struct BulkRequest<T> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BulkOperation` is never constructed
[INFO] [stderr]    --> src/models/api.rs:182:12
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub struct BulkOperation {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BulkOperationType` is never used
[INFO] [stderr]    --> src/models/api.rs:191:10
[INFO] [stderr]     |
[INFO] [stderr] 191 | pub enum BulkOperationType {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ExportFormat` is never used
[INFO] [stderr]    --> src/models/api.rs:201:10
[INFO] [stderr]     |
[INFO] [stderr] 201 | pub enum ExportFormat {
[INFO] [stderr]     |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImportResponse` is never constructed
[INFO] [stderr]    --> src/models/api.rs:224:12
[INFO] [stderr]     |
[INFO] [stderr] 224 | pub struct ImportResponse {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/models/api.rs:232:12
[INFO] [stderr]     |
[INFO] [stderr] 231 | impl ImportResponse {
[INFO] [stderr]     | ------------------- associated function in this implementation
[INFO] [stderr] 232 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImportError` is never constructed
[INFO] [stderr]    --> src/models/api.rs:250:12
[INFO] [stderr]     |
[INFO] [stderr] 250 | pub struct ImportError {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ValidationResponse` is never constructed
[INFO] [stderr]    --> src/models/api.rs:258:12
[INFO] [stderr]     |
[INFO] [stderr] 258 | pub struct ValidationResponse {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `valid` and `invalid` are never used
[INFO] [stderr]    --> src/models/api.rs:264:12
[INFO] [stderr]     |
[INFO] [stderr] 263 | impl ValidationResponse {
[INFO] [stderr]     | ----------------------- associated functions in this implementation
[INFO] [stderr] 264 |     pub fn valid() -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 271 |     pub fn invalid(errors: Vec<ValidationError>) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ValidationError` is never constructed
[INFO] [stderr]    --> src/models/api.rs:281:12
[INFO] [stderr]     |
[INFO] [stderr] 281 | pub struct ValidationError {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `endpoint_path`, `uses_json_schema`, `get_field_names`, and `get_required_fields` are never used
[INFO] [stderr]    --> src/models/collection.rs:195:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | impl CollectionDefinition {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] 194 |     /// Get the endpoint path for this collection
[INFO] [stderr] 195 |     pub fn endpoint_path(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn uses_json_schema(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn get_field_names(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn get_required_fields(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `can_transition_to` and `get_default_filter` are never used
[INFO] [stderr]   --> src/models/document.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl DocumentState {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 22 |     /// Check if a state transition is valid
[INFO] [stderr] 23 |     pub fn can_transition_to(&self, new_state: &DocumentState) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn get_default_filter() -> BsonDocument {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/models/document.rs:144:12
[INFO] [stderr]     |
[INFO] [stderr] 127 | impl Document {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn update(&mut self, updater_id: String, fields: HashMap<String, serde_json::Value>) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     pub fn change_state(&mut self, new_state: DocumentState, updater_id: String) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn get_field(&self, name: &str) -> Option<&serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn set_field(&mut self, name: String, value: serde_json::Value) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn remove_field(&mut self, name: &str) -> Option<serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 256 |     pub fn is_public(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn can_modify(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DocumentMetadata` is never constructed
[INFO] [stderr]    --> src/models/document.rs:268:12
[INFO] [stderr]     |
[INFO] [stderr] 268 | pub struct DocumentMetadata {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `apply_limits` is never used
[INFO] [stderr]   --> src/models/query.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 38 | impl QueryParams {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn apply_limits(&mut self, max_limit: u64) -> AppResult<()> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `QueryBuilder` is never constructed
[INFO] [stderr]    --> src/models/query.rs:147:12
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub struct QueryBuilder {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/models/query.rs:156:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl QueryBuilder {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 156 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 166 |     pub fn filter(mut self, key: &str, value: mongodb::bson::Bson) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     pub fn filter_doc(mut self, doc: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 178 |     pub fn sort(mut self, field: &str, direction: i32) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 184 |     pub fn sort_doc(mut self, sort: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |     pub fn project(mut self, field: &str, include: bool) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 195 |     pub fn projection_doc(mut self, projection: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn limit(mut self, limit: i64) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn skip(mut self, skip: u64) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn exclude_deleted(mut self) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 220 |     pub fn only_public(mut self) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn state_in(mut self, states: Vec<&str>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     pub fn build_find_options(self) -> mongodb::options::FindOptions {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 257 |     pub fn build_filter(self) -> BsonDocument {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TextSearchParams` is never constructed
[INFO] [stderr]    --> src/models/query.rs:270:12
[INFO] [stderr]     |
[INFO] [stderr] 270 | pub struct TextSearchParams {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `to_text_query` is never used
[INFO] [stderr]    --> src/models/query.rs:287:12
[INFO] [stderr]     |
[INFO] [stderr] 286 | impl TextSearchParams {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] 287 |     pub fn to_text_query(&self) -> BsonDocument {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AggregationBuilder` is never constructed
[INFO] [stderr]    --> src/models/query.rs:320:12
[INFO] [stderr]     |
[INFO] [stderr] 320 | pub struct AggregationBuilder {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/models/query.rs:325:12
[INFO] [stderr]     |
[INFO] [stderr] 324 | impl AggregationBuilder {
[INFO] [stderr]     | ----------------------- associated items in this implementation
[INFO] [stderr] 325 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 331 |     pub fn match_stage(mut self, filter: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 336 |     pub fn sort_stage(mut self, sort: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 341 |     pub fn project_stage(mut self, projection: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 346 |     pub fn limit_stage(mut self, limit: i64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 351 |     pub fn skip_stage(mut self, skip: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 356 |     pub fn group_stage(mut self, group: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 361 |     pub fn lookup_stage(
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 379 |     pub fn unwind_stage(mut self, field: &str, preserve_null: bool) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 389 |     pub fn add_stage(mut self, stage: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 394 |     pub fn build(self) -> Vec<BsonDocument> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `endpoint_path`, `get_bson_pipeline`, `has_lookup_enabled`, and `get_lookup_stages` are never used
[INFO] [stderr]    --> src/models/view.rs:37:12
[INFO] [stderr]     |
[INFO] [stderr]  35 | impl ViewDefinition {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr]  36 |     /// Get the endpoint path for this view
[INFO] [stderr]  37 |     pub fn endpoint_path(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  44 |     pub fn get_bson_pipeline(&self) -> Result<Vec<BsonDocument>, mongodb::bson::ser::Error> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub fn has_lookup_enabled(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn get_lookup_stages(&self) -> Vec<LookupStage> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LookupStage` is never constructed
[INFO] [stderr]    --> src/models/view.rs:119:12
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub struct LookupStage {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WritableViewConfig` is never constructed
[INFO] [stderr]    --> src/models/view.rs:145:12
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub struct WritableViewConfig {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LookupConfig` is never constructed
[INFO] [stderr]    --> src/models/view.rs:159:12
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub struct LookupConfig {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/services/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct AppState {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub config: AppConfig,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `find_collection_by_endpoint`, `find_view`, `find_view_by_endpoint`, `collection_names`, and `view_names` are never used
[INFO] [stderr]   --> src/services/mod.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl AppState {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn find_collection_by_endpoint(&self, endpoint: &str) -> Option<&CollectionDefinition> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn find_view(&self, name: &str) -> Option<&ViewDefinition> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn find_view_by_endpoint(&self, endpoint: &str) -> Option<&ViewDefinition> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn collection_names(&self) -> Vec<String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn view_names(&self) -> Vec<String> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `crud-service-rust` (bin "crud-service-rust") generated 113 warnings (59 duplicates) (run `cargo fix --bin "crud-service-rust" -p crud-service-rust` to apply 4 suggestions)
[INFO] [stderr] warning: unused imports: `db::Database` and `models::collection::CollectionDefinition`
[INFO] [stderr]   --> src/handlers/health.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |         db::Database,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 64 |         models::collection::CollectionDefinition,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::PathBuf`
[INFO] [stderr]   --> src/handlers/health.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     use std::path::PathBuf;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HeaderMap` and `HeaderValue`
[INFO] [stderr]    --> src/middleware/request_id.rs:136:22
[INFO] [stderr]     |
[INFO] [stderr] 136 |     use axum::http::{HeaderMap, HeaderValue};
[INFO] [stderr]     |                      ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `db_name` is never read
[INFO] [stderr]    --> src/database/mod.rs:160:5
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub struct MockDatabaseAdapter {
[INFO] [stderr]     |            ------------------- field in this struct
[INFO] [stderr] 160 |     db_name: String,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/errors.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum AppError {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 38 |     Conflict(String),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     Excel(String),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |     Timeout,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     RateLimit,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     Index(String),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     UnsupportedFormat(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     FileTooLarge { size: usize, max: usize },
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `conflict`, `unsupported_format`, and `file_too_large` are never used
[INFO] [stderr]    --> src/errors.rs:249:12
[INFO] [stderr]     |
[INFO] [stderr] 224 | impl AppError {
[INFO] [stderr]     | ------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 249 |     pub fn conflict<T: Into<String>>(message: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn unsupported_format<T: Into<String>>(format: T) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 268 |     pub fn file_too_large(size: usize, max: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `empty` and `filter_read_fields` are never used
[INFO] [stderr]    --> src/middleware/acl.rs:159:12
[INFO] [stderr]     |
[INFO] [stderr] 157 | impl AclContext {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 158 |     /// Create an empty ACL context (no restrictions)
[INFO] [stderr] 159 |     pub fn empty() -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn filter_read_fields(&self, mut document: HashMap<String, serde_json::Value>) -> HashMap<String, serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `endpoint_path` and `uses_json_schema` are never used
[INFO] [stderr]    --> src/models/collection.rs:195:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | impl CollectionDefinition {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] 194 |     /// Get the endpoint path for this collection
[INFO] [stderr] 195 |     pub fn endpoint_path(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn uses_json_schema(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `get_default_filter` is never used
[INFO] [stderr]   --> src/models/document.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl DocumentState {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn get_default_filter() -> BsonDocument {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_field`, `remove_field`, `is_public`, and `can_modify` are never used
[INFO] [stderr]    --> src/models/document.rs:246:12
[INFO] [stderr]     |
[INFO] [stderr] 127 | impl Document {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn set_field(&mut self, name: String, value: serde_json::Value) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn remove_field(&mut self, name: &str) -> Option<serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 256 |     pub fn is_public(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn can_modify(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `projection` and `skip` are never read
[INFO] [stderr]    --> src/models/query.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub struct QueryBuilder {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 150 |     projection: Option<BsonDocument>,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] 151 |     limit: Option<i64>,
[INFO] [stderr] 152 |     skip: Option<u64>,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/models/query.rs:171:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl QueryBuilder {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 171 |     pub fn filter_doc(mut self, doc: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 184 |     pub fn sort_doc(mut self, sort: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |     pub fn project(mut self, field: &str, include: bool) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 195 |     pub fn projection_doc(mut self, projection: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn skip(mut self, skip: u64) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 220 |     pub fn only_public(mut self) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn state_in(mut self, states: Vec<&str>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     pub fn build_find_options(self) -> mongodb::options::FindOptions {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `project_stage`, `skip_stage`, `group_stage`, `lookup_stage`, `unwind_stage`, and `add_stage` are never used
[INFO] [stderr]    --> src/models/query.rs:341:12
[INFO] [stderr]     |
[INFO] [stderr] 324 | impl AggregationBuilder {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 341 |     pub fn project_stage(mut self, projection: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 351 |     pub fn skip_stage(mut self, skip: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 356 |     pub fn group_stage(mut self, group: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 361 |     pub fn lookup_stage(
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 379 |     pub fn unwind_stage(mut self, field: &str, preserve_null: bool) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 389 |     pub fn add_stage(mut self, stage: BsonDocument) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `has_lookup_enabled` is never used
[INFO] [stderr]   --> src/models/view.rs:95:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl ViewDefinition {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 95 |     pub fn has_lookup_enabled(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `batch_size` and `concurrent_operations` are never read
[INFO] [stderr]   --> tests/performance_tests.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | struct PerformanceConfig {
[INFO] [stderr]    |        ----------------- fields in this struct
[INFO] [stderr] 16 |     document_count: usize,
[INFO] [stderr] 17 |     batch_size: usize,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 18 |     concurrent_operations: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PerformanceConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `product_schema`, `product_indexes`, `cleanup_test_collections`, `create_test_products_data`, `validate_document_structure`, and `measure_operation` are never used
[INFO] [stderr]    --> tests/test_utils.rs:58:12
[INFO] [stderr]     |
[INFO] [stderr]   9 | impl TestUtils {
[INFO] [stderr]     | -------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  58 |     pub fn product_schema() -> Value {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 128 |     pub fn product_indexes() -> Vec<HashMap<String, Value>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub async fn cleanup_test_collections(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 220 |     pub fn create_test_products_data(count: usize) -> Vec<HashMap<String, Value>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 300 |     pub fn validate_document_structure(doc: &crud_service_rust::models::document::Document) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 325 |     pub async fn measure_operation<F, T>(operation: F) -> (T, Duration)
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bson::Bson`
[INFO] [stderr]  --> src/database/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use bson::Bson;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `crud-service-rust` (bin "crud-service-rust" test) generated 102 warnings (88 duplicates) (run `cargo fix --bin "crud-service-rust" -p crud-service-rust --tests` to apply 3 suggestions)
[INFO] [stderr] warning: `crud-service-rust` (test "performance_tests") generated 2 warnings
[INFO] [stderr] warning: `crud-service-rust` (lib test) generated 62 warnings (61 duplicates) (run `cargo fix --lib -p crud-service-rust --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.18s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/crud_service_rust-fb0fe517e6e3f65d)
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test handlers::collections::tests::test_get_collections ... ignored
[INFO] [stdout] test handlers::health::tests::test_health_check ... ignored
[INFO] [stdout] test handlers::health::tests::test_readiness_check ... ignored
[INFO] [stdout] test errors::tests::test_invalid_state_transition_error ... ok
[INFO] [stdout] test config::tests::test_config_validation_missing_database_url ... ok
[INFO] [stdout] test middleware::acl::tests::test_acl_context_validate_write_fields ... ok
[INFO] [stdout] test db::tests::test_extract_database_name ... ok
[INFO] [stdout] test config::tests::test_config_validation ... ok
[INFO] [stdout] test middleware::acl::tests::test_field_access_checks ... ok
[INFO] [stdout] test middleware::auth::tests::test_anonymous_user ... ok
[INFO] [stdout] test middleware::auth::tests::test_user_context ... ok
[INFO] [stdout] test middleware::request_id::tests::test_generate_request_id ... ok
[INFO] [stdout] test middleware::acl::tests::test_extract_acl_read_columns ... ok
[INFO] [stdout] test middleware::acl::tests::test_acl_context_row_filter ... ok
[INFO] [stdout] test middleware::auth::tests::test_extract_user_id ... ok
[INFO] [stdout] test db::tests::test_create_index_model ... ok
[INFO] [stdout] test middleware::request_id::tests::test_request_id_wrapper ... ok
[INFO] [stdout] test errors::tests::test_app_error_status_codes ... ok
[INFO] [stdout] test models::api::tests::test_export_format_parsing ... ok
[INFO] [stdout] test models::api::tests::test_health_response ... ok
[INFO] [stdout] test models::api::tests::test_list_response ... ok
[INFO] [stdout] test models::collection::tests::test_collection_definition_validation ... ok
[INFO] [stdout] test middleware::acl::tests::test_acl_context_read_projection ... ok
[INFO] [stdout] test middleware::acl::tests::test_extract_acl_rows ... ok
[INFO] [stdout] test models::api::tests::test_api_response ... ok
[INFO] [stdout] test models::api::tests::test_bulk_response ... ok
[INFO] [stdout] test models::collection::tests::test_index_definition_validation ... ok
[INFO] [stdout] test models::document::tests::test_document_creation ... ok
[INFO] [stdout] test models::document::tests::test_document_state_change ... ok
[INFO] [stdout] test models::document::tests::test_document_state_string_conversion ... ok
[INFO] [stdout] test models::document::tests::test_document_state_transitions ... ok
[INFO] [stdout] test models::collection::tests::test_collection_field_names ... ok
[INFO] [stdout] test models::document::tests::test_document_update ... ok
[INFO] [stdout] test models::query::tests::test_aggregation_builder ... ok
[INFO] [stdout] test models::query::tests::test_query_builder ... ok
[INFO] [stdout] test models::query::tests::test_query_params_apply_limits ... ok
[INFO] [stdout] test models::view::tests::test_is_valid_aggregation_stage ... ok
[INFO] [stdout] test models::view::tests::test_view_definition_validation ... ok
[INFO] [stdout] test models::view::tests::test_bson_pipeline_conversion ... ok
[INFO] [stdout] test models::view::tests::test_view_endpoint_path ... ok
[INFO] [stdout] test models::view::tests::test_get_lookup_stages ... ok
[INFO] [stdout] test models::query::tests::test_text_search_params ... ok
[INFO] [stdout] test schema::loader::tests::test_load_collections_from_json ... ok
[INFO] [stdout] test schema::loader::tests::test_parse_javascript_module ... ok
[INFO] [stdout] test schema::loader::tests::test_load_views ... ok
[INFO] [stdout] test schema::loader::tests::test_load_collections_from_js ... ok
[INFO] [stdout] test schema::loader::tests::test_find_matching_brace ... FAILED
[INFO] [stdout] test schema::loader::tests::test_find_object_start ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- schema::loader::tests::test_find_matching_brace stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'schema::loader::tests::test_find_matching_brace' (56) panicked at src/schema/loader.rs:388:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Some(10)
[INFO] [stdout]  right: Some(9)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x62ea8ff80412 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x62ea8ff80412 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x62ea8ff80412 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x62ea8ff80412 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x62ea8ff9362f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x62ea8ff9362f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x62ea8ff4b053 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x62ea8ff4b053 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x62ea8ff57d82 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x62ea8ff5d71f - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x62ea8ff5d5b1 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x62ea8fd6a07e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x62ea8fd6a07e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x62ea8ff5dddf - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x62ea8ff5dddf - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x62ea8ff5db8a - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x62ea8ff57eb9 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x62ea8ff3e8ed - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x62ea8ff9d370 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x62ea8ff9d123 - core::panicking::assert_failed_inner::hdcc703ae7c807131
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:444:17
[INFO] [stdout]   20:     0x62ea8ff9cf67 - core::panicking::assert_failed::h81c7f8a8d2a466b8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:399:5
[INFO] [stdout]   21:     0x62ea8fcfc9c5 - crud_service_rust::schema::loader::tests::test_find_matching_brace::hf18cadeef8d3ccd2
[INFO] [stdout]                                at /opt/rustwide/workdir/src/schema/loader.rs:388:9
[INFO] [stdout]   22:     0x62ea8fcfcb97 - crud_service_rust::schema::loader::tests::test_find_matching_brace::{{closure}}::haad93271ee5f6a41
[INFO] [stdout]                                at /opt/rustwide/workdir/src/schema/loader.rs:387:34
[INFO] [stdout]   23:     0x62ea8fc8e016 - core::ops::function::FnOnce::call_once::h61536016cd445f89
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x62ea8fd69e5b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x62ea8fd69e5b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x62ea8fd7dedd - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x62ea8fd7dedd - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x62ea8fd7dedd - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x62ea8fd7dedd - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x62ea8fd7dedd - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x62ea8fd7dedd - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x62ea8fd7dedd - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x62ea8fd573f4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x62ea8fd573f4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x62ea8fd5ad2a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   36:     0x62ea8fd5ad2a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x62ea8fd5ad2a - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x62ea8fd5ad2a - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x62ea8fd5ad2a - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x62ea8fd5ad2a - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   41:     0x62ea8fd5ad2a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x62ea8ff532bf - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   43:     0x62ea8ff532bf - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   44:     0x7b1185caeaa4 - <unknown>
[INFO] [stdout]   45:     0x7b1185d3ba64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- schema::loader::tests::test_find_object_start stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'schema::loader::tests::test_find_object_start' (57) panicked at src/schema/loader.rs:381:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Some(15)
[INFO] [stdout]  right: Some(14)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x62ea8ff80412 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x62ea8ff80412 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x62ea8ff80412 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x62ea8ff80412 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x62ea8ff9362f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x62ea8ff9362f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x62ea8ff4b053 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x62ea8ff4b053 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x62ea8ff57d82 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x62ea8ff5d71f - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x62ea8ff5d5b1 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x62ea8fd6a07e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x62ea8fd6a07e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x62ea8ff5dddf - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x62ea8ff5dddf - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x62ea8ff5db8a - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x62ea8ff57eb9 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x62ea8ff3e8ed - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x62ea8ff9d370 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x62ea8ff9d123 - core::panicking::assert_failed_inner::hdcc703ae7c807131
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:444:17
[INFO] [stdout]   20:     0x62ea8ff9cf67 - core::panicking::assert_failed::h81c7f8a8d2a466b8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:399:5
[INFO] [stdout]   21:     0x62ea8fcfc7d3 - crud_service_rust::schema::loader::tests::test_find_object_start::h028ed5bb2bef31d7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/schema/loader.rs:381:9
[INFO] [stdout]   22:     0x62ea8fcfc927 - crud_service_rust::schema::loader::tests::test_find_object_start::{{closure}}::hef74dae699a04194
[INFO] [stdout]                                at /opt/rustwide/workdir/src/schema/loader.rs:379:32
[INFO] [stdout]   23:     0x62ea8fc8e796 - core::ops::function::FnOnce::call_once::hc2fd16a607b1d5a7
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x62ea8fd69e5b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x62ea8fd69e5b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x62ea8fd7dedd - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x62ea8fd7dedd - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x62ea8fd7dedd - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x62ea8fd7dedd - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x62ea8fd7dedd - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x62ea8fd7dedd - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x62ea8fd7dedd - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x62ea8fd573f4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x62ea8fd573f4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x62ea8fd5ad2a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   36:     0x62ea8fd5ad2a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x62ea8fd5ad2a - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x62ea8fd5ad2a - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x62ea8fd5ad2a - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x62ea8fd5ad2a - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   41:     0x62ea8fd5ad2a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x62ea8ff532bf - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   43:     0x62ea8ff532bf - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   44:     0x7b1185caeaa4 - <unknown>
[INFO] [stdout]   45:     0x7b1185d3ba64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     schema::loader::tests::test_find_matching_brace
[INFO] [stdout]     schema::loader::tests::test_find_object_start
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 43 passed; 2 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.71s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "88bc777fa1b76d21af3c6bc6cd38531289de8ca985ab29c87d0d446524528f6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88bc777fa1b76d21af3c6bc6cd38531289de8ca985ab29c87d0d446524528f6d", kill_on_drop: false }`
[INFO] [stdout] 88bc777fa1b76d21af3c6bc6cd38531289de8ca985ab29c87d0d446524528f6d
