[INFO] cloning repository https://github.com/dexter4life/Fast-CDN
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dexter4life/Fast-CDN" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdexter4life%2FFast-CDN", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdexter4life%2FFast-CDN'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ae333c6900fcc86fd269b773e4f973212c183fb5
[INFO] checking dexter4life/Fast-CDN against try#b98202ad067d72e45cec8be3d5c15d86ef0fd086 for pr-155193
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdexter4life%2FFast-CDN" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dexter4life/Fast-CDN
[INFO] finished tweaking git repo https://github.com/dexter4life/Fast-CDN
[INFO] tweaked toml for git repo https://github.com/dexter4life/Fast-CDN written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dexter4life/Fast-CDN on toolchain b98202ad067d72e45cec8be3d5c15d86ef0fd086
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b98202ad067d72e45cec8be3d5c15d86ef0fd086" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dexter4life/Fast-CDN 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" "+b98202ad067d72e45cec8be3d5c15d86ef0fd086" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b98202ad067d72e45cec8be3d5c15d86ef0fd086" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 48389f3d3f0c114559d0f53dc7acb1e1368724fb5267074835cb4fed9ae347ef
[INFO] running `Command { std: "docker" "start" "-a" "48389f3d3f0c114559d0f53dc7acb1e1368724fb5267074835cb4fed9ae347ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48389f3d3f0c114559d0f53dc7acb1e1368724fb5267074835cb4fed9ae347ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48389f3d3f0c114559d0f53dc7acb1e1368724fb5267074835cb4fed9ae347ef", kill_on_drop: false }`
[INFO] [stdout] 48389f3d3f0c114559d0f53dc7acb1e1368724fb5267074835cb4fed9ae347ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b98202ad067d72e45cec8be3d5c15d86ef0fd086" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de1f52b679897e3b2339248dc3eabfaff7a59b7e509cae979a0afd9f49eff332
[INFO] running `Command { std: "docker" "start" "-a" "de1f52b679897e3b2339248dc3eabfaff7a59b7e509cae979a0afd9f49eff332", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking foldhash v0.2.0
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking time-core v0.1.8
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking num-conv v0.2.0
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]     Checking outref v0.5.2
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking vsimd v0.8.0
[INFO] [stderr]     Checking bytes-utils v0.1.4
[INFO] [stderr]    Compiling aws-lc-rs v1.16.0
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking ff v0.12.1
[INFO] [stderr]    Compiling aws-lc-sys v0.37.1
[INFO] [stderr]     Checking base16ct v0.1.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking group v0.12.1
[INFO] [stderr]     Checking der v0.6.1
[INFO] [stderr]     Checking base64-simd v0.8.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling aws-types v1.3.13
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking crypto-bigint v0.4.9
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking spki v0.6.0
[INFO] [stderr]     Checking regex-lite v0.1.9
[INFO] [stderr]     Checking pkcs8 v0.9.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking sec1 v0.3.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]     Checking xmlparser v0.13.6
[INFO] [stderr]    Compiling procfs v0.16.0
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking crc v3.3.0
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking aws-smithy-xml v0.60.14
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking ordered-float v4.6.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking compression-core v0.4.31
[INFO] [stderr]     Checking rfc6979 v0.3.1
[INFO] [stderr]     Checking elliptic-curve v0.12.3
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking spin v0.10.0
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]     Checking clap_lex v1.0.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking crc-fast v1.9.0
[INFO] [stderr]     Checking clap_builder v4.5.60
[INFO] [stderr]     Checking ecdsa v0.14.8
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking p256 v0.11.1
[INFO] [stderr]     Checking uuid v1.21.0
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]     Checking procfs-core v0.16.0
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking lru-slab v0.1.2
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking hdrhistogram v7.5.4
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]     Checking tagptr v0.2.0
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]    Compiling http-types v2.12.0
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking infer v0.2.3
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rcgen v0.12.1
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking retain_mut v0.1.9
[INFO] [stderr]     Checking tempfile v3.26.0
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking deunicode v1.6.2
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking compression-codecs v0.4.37
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.40
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking opentelemetry v0.21.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling dummy v0.8.0
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_qs v0.8.5
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking moka v0.12.13
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking aws-smithy-async v1.2.13
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking async-compression v0.4.41
[INFO] [stderr]     Checking deadpool v0.9.5
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking aws-smithy-types v1.4.5
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rust-ini v0.20.0
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking fastbloom v0.14.1
[INFO] [stderr]     Checking proptest v1.10.0
[INFO] [stderr]     Checking aws-smithy-runtime-api v1.11.5
[INFO] [stderr]     Checking aws-smithy-eventstream v0.60.19
[INFO] [stderr]     Checking aws-smithy-json v0.62.4
[INFO] [stderr]     Checking aws-smithy-query v0.60.14
[INFO] [stderr]     Checking yaml-rust2 v0.8.1
[INFO] [stderr]     Checking opentelemetry_sdk v0.21.2
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking failsafe v1.3.0
[INFO] [stderr]     Checking fake v2.10.0
[INFO] [stderr]     Checking config v0.14.1
[INFO] [stderr]     Checking tracing-opentelemetry v0.22.0
[INFO] [stderr]     Checking opentelemetry-prometheus v0.14.1
[INFO] [stderr]     Checking aws-smithy-http v0.63.5
[INFO] [stderr]     Checking aws-credential-types v1.2.13
[INFO] [stderr]     Checking aws-smithy-observability v0.2.5
[INFO] [stderr]     Checking aws-sigv4 v1.4.1
[INFO] [stderr]     Checking aws-smithy-checksums v0.64.5
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking quinn-proto v0.11.13
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking wiremock v0.5.22
[INFO] [stderr]     Checking aws-smithy-http-client v1.1.11
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking aws-smithy-runtime v1.10.2
[INFO] [stderr]     Checking aws-runtime v1.7.1
[INFO] [stderr]     Checking aws-sdk-sso v1.95.0
[INFO] [stderr]     Checking aws-sdk-ssooidc v1.97.0
[INFO] [stderr]     Checking aws-sdk-sts v1.99.0
[INFO] [stderr]     Checking aws-sdk-s3 v1.124.0
[INFO] [stderr]     Checking aws-config v1.8.14
[INFO] [stderr]     Checking cdn-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/cache/disk.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hidden lifetime parameters in types are deprecated
[INFO] [stdout]    --> src/cache/entry.rs:188:59
[INFO] [stdout]     |
[INFO] [stdout] 188 |             fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]     |                                                 ----------^^^^^^^^^
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 expected lifetime parameter
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:49:9
[INFO] [stdout]     |
[INFO] [stdout]  49 | #![warn(rust_2018_idioms)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(elided_lifetimes_in_paths)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] help: indicate the anonymous lifetime
[INFO] [stdout]     |
[INFO] [stdout] 188 |             fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]   --> src/cache/mod.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use bytes::Bytes;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Histogram`
[INFO] [stdout]  --> src/observability/metrics.rs:5:52
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Counter, CounterVec, Encoder, Gauge, GaugeVec, Histogram, HistogramOpts, HistogramVec, Opts,
[INFO] [stdout]   |                                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `otel`
[INFO] [stdout]   --> src/observability/logging.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[cfg(feature = "otel")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `http2`, `http3`, `image`, `image-processing`, `quinn`, `ravif`, `rustls`, and `webp`
[INFO] [stdout]    = help: consider adding `otel` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing::Level`
[INFO] [stdout]  --> src/observability/logging.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::Level;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SecurityDenialReason`
[INFO] [stdout]  --> src/proxy/handler.rs:7:59
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::security::{SecurityMiddleware, SecurityResult, SecurityDenialReason, create_denial_response, extract_client_ip};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamBody`
[INFO] [stdout]   --> src/proxy/handler.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 13 | use http_body_util::{BodyExt, Empty, Full, StreamBody};
[INFO] [stdout]    |                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hyper::body::Frame`
[INFO] [stdout]   --> src/proxy/handler.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use hyper::body::Frame;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/proxy/handler.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/proxy/handler.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::io::ReaderStream`
[INFO] [stdout]   --> src/proxy/handler.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio_util::io::ReaderStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Span` and `info`
[INFO] [stdout]   --> src/proxy/handler.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tracing::{debug, error, info, instrument, warn, Span};
[INFO] [stdout]    |                             ^^^^                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/proxy/streaming.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | /// Adapter to convert AsyncRead to Stream
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/proxy/streaming.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | /// Rate-limited stream for slow consumer protection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/proxy/streaming.rs:201:1
[INFO] [stdout]     |
[INFO] [stdout] 201 | /// Tee stream that writes to both a cache buffer and the output
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/proxy/streaming.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::io::{AsyncRead, AsyncReadExt};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/security/middleware.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]   --> src/storage/client.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         use futures::StreamExt;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/cache/disk.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hidden lifetime parameters in types are deprecated
[INFO] [stdout]    --> src/cache/entry.rs:188:59
[INFO] [stdout]     |
[INFO] [stdout] 188 |             fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]     |                                                 ----------^^^^^^^^^
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 expected lifetime parameter
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:49:9
[INFO] [stdout]     |
[INFO] [stdout]  49 | #![warn(rust_2018_idioms)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(elided_lifetimes_in_paths)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] help: indicate the anonymous lifetime
[INFO] [stdout]     |
[INFO] [stdout] 188 |             fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Histogram`
[INFO] [stdout]  --> src/observability/metrics.rs:5:52
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Counter, CounterVec, Encoder, Gauge, GaugeVec, Histogram, HistogramOpts, HistogramVec, Opts,
[INFO] [stdout]   |                                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `otel`
[INFO] [stdout]   --> src/observability/logging.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[cfg(feature = "otel")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `http2`, `http3`, `image`, `image-processing`, `quinn`, `ravif`, `rustls`, and `webp`
[INFO] [stdout]    = help: consider adding `otel` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing::Level`
[INFO] [stdout]  --> src/observability/logging.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::Level;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/proxy/server.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 293 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SecurityDenialReason`
[INFO] [stdout]  --> src/proxy/handler.rs:7:59
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::security::{SecurityMiddleware, SecurityResult, SecurityDenialReason, create_denial_response, extract_client_ip};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamBody`
[INFO] [stdout]   --> src/proxy/handler.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 13 | use http_body_util::{BodyExt, Empty, Full, StreamBody};
[INFO] [stdout]    |                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hyper::body::Frame`
[INFO] [stdout]   --> src/proxy/handler.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use hyper::body::Frame;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/proxy/handler.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/proxy/handler.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::io::ReaderStream`
[INFO] [stdout]   --> src/proxy/handler.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio_util::io::ReaderStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Span` and `info`
[INFO] [stdout]   --> src/proxy/handler.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tracing::{debug, error, info, instrument, warn, Span};
[INFO] [stdout]    |                             ^^^^                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/proxy/streaming.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | /// Adapter to convert AsyncRead to Stream
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/proxy/streaming.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | /// Rate-limited stream for slow consumer protection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/proxy/streaming.rs:201:1
[INFO] [stdout]     |
[INFO] [stdout] 201 | /// Tee stream that writes to both a cache buffer and the output
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/proxy/streaming.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::io::{AsyncRead, AsyncReadExt};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/security/middleware.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]   --> src/storage/client.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         use futures::StreamExt;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/security/hmac.rs:155:34
[INFO] [stdout]     |
[INFO] [stdout] 155 |         use ring::constant_time::verify_slices_are_equal;
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/security/hmac.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |         verify_slices_are_equal(a, b).is_ok()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/types/mod.rs:293:34
[INFO] [stdout]     |
[INFO] [stdout] 293 |         use ring::constant_time::verify_slices_are_equal;
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/types/mod.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         verify_slices_are_equal(&self.0, &other.0).is_ok()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/security/hmac.rs:155:34
[INFO] [stdout]     |
[INFO] [stdout] 155 |         use ring::constant_time::verify_slices_are_equal;
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/security/hmac.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |         verify_slices_are_equal(a, b).is_ok()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/types/mod.rs:293:34
[INFO] [stdout]     |
[INFO] [stdout] 293 |         use ring::constant_time::verify_slices_are_equal;
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `ring::deprecated_constant_time::verify_slices_are_equal`: To be removed. Internal function not intended for external use with no promises regarding side channels.
[INFO] [stdout]    --> src/types/mod.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         verify_slices_are_equal(&self.0, &other.0).is_ok()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]   --> src/proxy/handler.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use futures::StreamExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super`
[INFO] [stdout]    --> src/proxy/handler.rs:558:9
[INFO] [stdout]     |
[INFO] [stdout] 558 |     use super::*;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]   --> src/proxy/handler.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use futures::StreamExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]    --> src/proxy/server.rs:260:25
[INFO] [stdout]     |
[INFO] [stdout] 260 |                     let handler = handler.clone();
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_error` is never read
[INFO] [stdout]   --> src/storage/retry.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut last_error = None;
[INFO] [stdout]    |                              ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 38 |                     last_error = Some(e);
[INFO] [stdout]    |                     ---------- `last_error` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/proxy/handler.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         params: &TransformParams,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]    --> src/proxy/server.rs:260:25
[INFO] [stdout]     |
[INFO] [stdout] 260 |                     let handler = handler.clone();
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_error` is never read
[INFO] [stdout]   --> src/storage/retry.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut last_error = None;
[INFO] [stdout]    |                              ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 38 |                     last_error = Some(e);
[INFO] [stdout]    |                     ---------- `last_error` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/proxy/handler.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         params: &TransformParams,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexEntry` is never constructed
[INFO] [stdout]   --> src/cache/disk.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct IndexEntry {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Miss,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Expired,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     DiskIo(#[from] std::io::Error),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Serialization(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TooLarge { size: usize, max: usize },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/mod.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TooLarge { size: usize, max: usize },
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/mod.rs:41:29
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TooLarge { size: usize, max: usize },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/mod.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub memory: Option<MemoryCacheStats>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/mod.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub disk: Option<DiskCacheStats>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub hits: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub misses: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub entries: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub max_size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub hits: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub misses: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub writes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub evictions: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub max_size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/collapse.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub entry: Option<CacheEntry>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/collapse.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub error: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/cache/collapse.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn success(entry: CacheEntry) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/cache/collapse.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn error(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/cache/collapse.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn new(collapser: &'a RequestCollapser, key: CacheKey) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/cache/collapse.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn complete(mut self, response: CollapsedResponse) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/cache/collapse.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub struct StreamMetadata {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/collapse.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub content_type: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/collapse.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub content_length: Option<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/collapse.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub etag: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/cache/collapse.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn new(timeout: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub server: ServerConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub s3: S3Config,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub cache: CacheConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub security: SecurityConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub observability: ObservabilityConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub request_id: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub method: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub path: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub client_ip: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/observability/logging.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn new(method: &str, path: &str) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/observability/logging.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub fn with_client_ip(mut self, ip: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub request_id: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub method: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     pub path: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub status: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub duration_ms: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub bytes_sent: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub cache_status: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub client_ip: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub user_agent: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/proxy/streaming.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn new(stream: S, config: &StreamingConfig) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/proxy/streaming.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn bytes_sent(&self) -> u64 {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/proxy/streaming.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / pin_project! {
[INFO] [stdout]  95 | |     pub struct AsyncReadStream<R> {
[INFO] [stdout]  96 | |         #[pin]
[INFO] [stdout]  97 | |         reader: R,
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/proxy/streaming.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(reader: R, chunk_size: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/proxy/streaming.rs:138:1
[INFO] [stdout]     |
[INFO] [stdout] 138 | / pin_project! {
[INFO] [stdout] 139 | |     pub struct RateLimitedStream<S> {
[INFO] [stdout] 140 | |         #[pin]
[INFO] [stdout] 141 | |         inner: S,
[INFO] [stdout] ...   |
[INFO] [stdout] 146 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/proxy/streaming.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub fn new(stream: S, bytes_per_second: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/proxy/streaming.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | / pin_project! {
[INFO] [stdout] 203 | |     pub struct TeeStream<S> {
[INFO] [stdout] 204 | |         #[pin]
[INFO] [stdout] 205 | |         inner: S,
[INFO] [stdout] ...   |
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/proxy/streaming.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn new(stream: S, max_buffer: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     InvalidParameter(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     UnsupportedFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     ProcessingError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     OutputTooLarge,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Jpeg,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Png,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     WebP,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Avif,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Original,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/proxy/transform.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn from_str(s: &str) -> Option<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/proxy/transform.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn content_type(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/proxy/transform.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn extension(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/proxy/transform.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn from_str(s: &str) -> Option<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     MissingToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     MissingExpiry,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     InvalidExpiry,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Expired,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     InvalidSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     InvalidSecretKey,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/security/rate_limit.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub tracked_ips: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/security/rate_limit.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn new(default_config: RateLimitConfig) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     RateLimited { remaining: u32 },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/security/middleware.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     RateLimited { remaining: u32 },
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     MissingSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     InvalidSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     ExpiredSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Forbidden,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/security/middleware.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn status_code(&self) -> StatusCode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/security/middleware.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn message(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub content_type: ContentType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub content_length: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub etag: Option<ETag>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub last_modified: Option<chrono::DateTime<chrono::Utc>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexEntry` is never constructed
[INFO] [stdout]   --> src/cache/disk.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct IndexEntry {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub cache_control: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub content_encoding: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub custom_metadata: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub metadata: ObjectMetadata,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub stream: S3ByteStream,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/storage/client.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(stream: ByteStream) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Miss,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Expired,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     DiskIo(#[from] std::io::Error),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Serialization(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/cache/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TooLarge { size: usize, max: usize },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/mod.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TooLarge { size: usize, max: usize },
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     NotFound { bucket: String, key: String },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     NotFound { bucket: String, key: String },
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |     NotFound { bucket: String, key: String },
[INFO] [stdout]     |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/mod.rs:41:29
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TooLarge { size: usize, max: usize },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AccessDenied { bucket: String, key: String },
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:114:20
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AccessDenied { bucket: String, key: String },
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:114:36
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AccessDenied { bucket: String, key: String },
[INFO] [stdout]     |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     BucketNotFound { bucket: String },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:117:22
[INFO] [stdout]     |
[INFO] [stdout] 117 |     BucketNotFound { bucket: String },
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Throttled { retry_after_ms: u64 },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Throttled { retry_after_ms: u64 },
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     CircuitBreakerOpen,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     Connection(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     Timeout(Duration),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     Internal(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 |     InvalidRange,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub access_key_id: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub secret_access_key: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub session_token: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Get,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Put,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Post,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Delete,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Head,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/storage/sigv4.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/mod.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub memory: Option<MemoryCacheStats>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/mod.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub disk: Option<DiskCacheStats>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub method: HttpMethod,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub hits: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub host: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub misses: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub path: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub entries: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub query: BTreeMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub headers: BTreeMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub payload_hash: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub authorization: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub x_amz_date: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub x_amz_content_sha256: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub x_amz_security_token: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/storage/retry.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(max_retries: u32, initial_delay: Duration, max_delay: Duration) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/memory.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub max_size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub hits: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub misses: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub writes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub evictions: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/disk.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub max_size_bytes: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/storage/retry.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     pub fn max_retries(mut self, retries: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/collapse.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub entry: Option<CacheEntry>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cache/collapse.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub error: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/cache/collapse.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn success(entry: CacheEntry) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn initial_delay(mut self, delay: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn max_delay(mut self, delay: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn build(self) -> RetryPolicy {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/cache/collapse.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn error(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Empty(&'static str),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     InvalidFormat {
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         field: &'static str,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     TooLong {
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         field: &'static str,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         max: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         actual: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Expired,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/types/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(name: impl Into<String>) -> Result<Self, TypeValidationError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/cache/collapse.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn new(collapser: &'a RequestCollapser, key: CacheKey) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/types/mod.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/cache/collapse.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn complete(mut self, response: CollapsedResponse) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn new(key: impl Into<String>) -> Result<Self, TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/cache/collapse.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub struct StreamMetadata {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn new_unchecked(key: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/collapse.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub content_type: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/collapse.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub content_length: Option<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/cache/collapse.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub etag: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/cache/collapse.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn new(timeout: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:205:5
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn new(timestamp: i64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub server: ServerConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub s3: S3Config,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub cache: CacheConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub security: SecurityConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn from_duration(duration: std::time::Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/config/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub observability: ObservabilityConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:214:5
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn is_expired(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn validate(&self) -> Result<(), TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn as_i64(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn remaining_seconds(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 254 |     pub fn new(bytes: Vec<u8>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     pub fn from_hex(hex_str: &str) -> Result<Self, TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 |     pub fn from_base64(b64_str: &str) -> Result<Self, TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     pub fn as_bytes(&self) -> &[u8] {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn to_hex(&self) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn to_base64(&self) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:307:5
[INFO] [stdout]     |
[INFO] [stdout] 307 |     pub fn new(bucket: BucketName, key: ObjectKey) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:315:5
[INFO] [stdout]     |
[INFO] [stdout] 315 |     pub fn with_variant(mut self, variant: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 320 |     pub fn bucket(&self) -> &BucketName {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:324:5
[INFO] [stdout]     |
[INFO] [stdout] 324 |     pub fn key(&self) -> &ObjectKey {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:328:5
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn variant(&self) -> Option<&str> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/types/mod.rs:366:5
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub start: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/types/mod.rs:367:5
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub end: Option<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:371:5
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn new(start: u64, end: Option<u64>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     pub fn full() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:379:5
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn from_header(header: &str) -> Option<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn to_header(&self) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 401 |     pub fn length(&self) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     pub fn new(mime: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     pub fn from_extension(ext: &str) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:444:5
[INFO] [stdout]     |
[INFO] [stdout] 444 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:448:5
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub fn is_image(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn is_video(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:456:5
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn is_compressible(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn new(etag: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:486:5
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub request_id: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub method: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub path: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub client_ip: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/observability/logging.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn new(method: &str, path: &str) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/observability/logging.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub fn with_client_ip(mut self, ip: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub request_id: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub method: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     pub path: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub status: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub duration_ms: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub bytes_sent: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub cache_status: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub client_ip: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/observability/logging.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub user_agent: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/proxy/streaming.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn new(stream: S, config: &StreamingConfig) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/proxy/streaming.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn bytes_sent(&self) -> u64 {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/proxy/streaming.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / pin_project! {
[INFO] [stdout]  95 | |     pub struct AsyncReadStream<R> {
[INFO] [stdout]  96 | |         #[pin]
[INFO] [stdout]  97 | |         reader: R,
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/proxy/streaming.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn new(reader: R, chunk_size: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/proxy/streaming.rs:138:1
[INFO] [stdout]     |
[INFO] [stdout] 138 | / pin_project! {
[INFO] [stdout] 139 | |     pub struct RateLimitedStream<S> {
[INFO] [stdout] 140 | |         #[pin]
[INFO] [stdout] 141 | |         inner: S,
[INFO] [stdout] ...   |
[INFO] [stdout] 146 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/proxy/streaming.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub fn new(stream: S, bytes_per_second: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/proxy/streaming.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | / pin_project! {
[INFO] [stdout] 203 | |     pub struct TeeStream<S> {
[INFO] [stdout] 204 | |         #[pin]
[INFO] [stdout] 205 | |         inner: S,
[INFO] [stdout] ...   |
[INFO] [stdout] 210 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/proxy/streaming.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn new(stream: S, max_buffer: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     InvalidParameter(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     UnsupportedFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     ProcessingError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     OutputTooLarge,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Jpeg,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Png,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     WebP,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Avif,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/proxy/transform.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Original,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/proxy/transform.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn from_str(s: &str) -> Option<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/proxy/transform.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn content_type(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/proxy/transform.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn extension(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/proxy/transform.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn from_str(s: &str) -> Option<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     MissingToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     MissingExpiry,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     InvalidExpiry,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Expired,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     InvalidSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/hmac.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     InvalidSecretKey,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/security/rate_limit.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub tracked_ips: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/security/rate_limit.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn new(default_config: RateLimitConfig) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     RateLimited { remaining: u32 },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/security/middleware.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     RateLimited { remaining: u32 },
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     MissingSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     InvalidSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     ExpiredSignature,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/security/middleware.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Forbidden,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/security/middleware.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn status_code(&self) -> StatusCode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/security/middleware.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn message(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub content_type: ContentType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub content_length: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub etag: Option<ETag>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub last_modified: Option<chrono::DateTime<chrono::Utc>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub cache_control: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub content_encoding: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub custom_metadata: std::collections::HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub metadata: ObjectMetadata,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/client.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub stream: S3ByteStream,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/storage/client.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(stream: ByteStream) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     NotFound { bucket: String, key: String },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     NotFound { bucket: String, key: String },
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |     NotFound { bucket: String, key: String },
[INFO] [stdout]     |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AccessDenied { bucket: String, key: String },
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:114:20
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AccessDenied { bucket: String, key: String },
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:114:36
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AccessDenied { bucket: String, key: String },
[INFO] [stdout]     |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     BucketNotFound { bucket: String },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:117:22
[INFO] [stdout]     |
[INFO] [stdout] 117 |     BucketNotFound { bucket: String },
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Throttled { retry_after_ms: u64 },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/storage/client.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Throttled { retry_after_ms: u64 },
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     CircuitBreakerOpen,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     Connection(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     Timeout(Duration),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     Internal(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/storage/client.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 |     InvalidRange,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub access_key_id: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub secret_access_key: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub session_token: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Get,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Put,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Post,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Delete,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/storage/sigv4.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Head,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/storage/sigv4.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub method: HttpMethod,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub host: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub path: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub query: BTreeMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub headers: BTreeMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub payload_hash: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub authorization: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub x_amz_date: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub x_amz_content_sha256: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/storage/sigv4.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub x_amz_security_token: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/storage/retry.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(max_retries: u32, initial_delay: Duration, max_delay: Duration) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/storage/retry.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     pub fn max_retries(mut self, retries: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn initial_delay(mut self, delay: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn max_delay(mut self, delay: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/storage/retry.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn build(self) -> RetryPolicy {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Empty(&'static str),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     InvalidFormat {
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         field: &'static str,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     TooLong {
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         field: &'static str,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         max: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/types/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         actual: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/types/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Expired,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/types/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(name: impl Into<String>) -> Result<Self, TypeValidationError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/types/mod.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn new(key: impl Into<String>) -> Result<Self, TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn new_unchecked(key: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:205:5
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn new(timestamp: i64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn from_duration(duration: std::time::Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:214:5
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn is_expired(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn validate(&self) -> Result<(), TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     pub fn as_i64(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn remaining_seconds(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 254 |     pub fn new(bytes: Vec<u8>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     pub fn from_hex(hex_str: &str) -> Result<Self, TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 |     pub fn from_base64(b64_str: &str) -> Result<Self, TypeValidationError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     pub fn as_bytes(&self) -> &[u8] {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn to_hex(&self) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn to_base64(&self) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:307:5
[INFO] [stdout]     |
[INFO] [stdout] 307 |     pub fn new(bucket: BucketName, key: ObjectKey) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:315:5
[INFO] [stdout]     |
[INFO] [stdout] 315 |     pub fn with_variant(mut self, variant: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 320 |     pub fn bucket(&self) -> &BucketName {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:324:5
[INFO] [stdout]     |
[INFO] [stdout] 324 |     pub fn key(&self) -> &ObjectKey {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:328:5
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn variant(&self) -> Option<&str> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/types/mod.rs:366:5
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub start: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/types/mod.rs:367:5
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub end: Option<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:371:5
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn new(start: u64, end: Option<u64>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     pub fn full() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:379:5
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn from_header(header: &str) -> Option<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn to_header(&self) -> String {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 401 |     pub fn length(&self) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     pub fn new(mime: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     pub fn from_extension(ext: &str) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:444:5
[INFO] [stdout]     |
[INFO] [stdout] 444 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:448:5
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub fn is_image(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn is_video(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:456:5
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn is_compressible(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/types/mod.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn new(etag: impl Into<String>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/types/mod.rs:486:5
[INFO] [stdout]     |
[INFO] [stdout] 486 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 40s
[INFO] running `Command { std: "docker" "inspect" "de1f52b679897e3b2339248dc3eabfaff7a59b7e509cae979a0afd9f49eff332", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de1f52b679897e3b2339248dc3eabfaff7a59b7e509cae979a0afd9f49eff332", kill_on_drop: false }`
[INFO] [stdout] de1f52b679897e3b2339248dc3eabfaff7a59b7e509cae979a0afd9f49eff332
