[INFO] cloning repository https://github.com/Ikaleio/monoize [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ikaleio/monoize" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIkaleio%2Fmonoize", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIkaleio%2Fmonoize'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f531e34110fd61d4da8137f7c047eef0461f02d2 [INFO] linting Ikaleio/monoize against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIkaleio%2Fmonoize" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Ikaleio/monoize [INFO] finished tweaking git repo https://github.com/Ikaleio/monoize [INFO] tweaked toml for git repo https://github.com/Ikaleio/monoize written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Ikaleio/monoize on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Ikaleio/monoize 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sea-query-derive v0.4.3 [INFO] [stderr] Downloaded type1-encoding-parser v0.1.0 [INFO] [stderr] Downloaded nasm-rs v0.3.2 [INFO] [stderr] Downloaded libdeflater v1.25.2 [INFO] [stderr] Downloaded rgb v0.8.53 [INFO] [stderr] Downloaded adobe-cmap-parser v0.4.1 [INFO] [stderr] Downloaded metrics v0.24.3 [INFO] [stderr] Downloaded postscript v0.14.1 [INFO] [stderr] Downloaded metrics-util v0.20.1 [INFO] [stderr] Downloaded metrics-exporter-prometheus v0.18.1 [INFO] [stderr] Downloaded pdf-extract v0.10.0 [INFO] [stderr] Downloaded mozjpeg v0.10.13 [INFO] [stderr] Downloaded oxipng v10.1.0 [INFO] [stderr] Downloaded cff-parser v0.1.0 [INFO] [stderr] Downloaded ecb v0.1.2 [INFO] [stderr] Downloaded nom_locate v5.0.0 [INFO] [stderr] Downloaded sea-orm-migration v1.1.19 [INFO] [stderr] Downloaded fancy-regex v0.13.0 [INFO] [stderr] Downloaded libdeflate-sys v1.25.2 [INFO] [stderr] Downloaded sea-orm-cli v1.1.19 [INFO] [stderr] Downloaded pom v1.1.0 [INFO] [stderr] Downloaded sea-schema-derive v0.3.0 [INFO] [stderr] Downloaded mozjpeg-sys v2.2.3 [INFO] [stderr] Downloaded pxfm v0.1.28 [INFO] [stderr] Downloaded sea-schema v0.16.2 [INFO] [stderr] Downloaded tiktoken-rs v0.9.1 [INFO] [stderr] Downloaded lopdf v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2d9934fcfd793cba87e07356c22fc98b33b1281f6f3a34860b096d5d77d43aaa [INFO] running `Command { std: "docker" "start" "-a" "2d9934fcfd793cba87e07356c22fc98b33b1281f6f3a34860b096d5d77d43aaa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2d9934fcfd793cba87e07356c22fc98b33b1281f6f3a34860b096d5d77d43aaa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2d9934fcfd793cba87e07356c22fc98b33b1281f6f3a34860b096d5d77d43aaa", kill_on_drop: false }` [INFO] [stdout] 2d9934fcfd793cba87e07356c22fc98b33b1281f6f3a34860b096d5d77d43aaa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 312b849877d12a914c00e13f4bdf71be8dd1bd782a68afb677db682025c78480 [INFO] running `Command { std: "docker" "start" "-a" "312b849877d12a914c00e13f4bdf71be8dd1bd782a68afb677db682025c78480", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.179 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling find-msvc-tools v0.1.6 [INFO] [stderr] Checking memchr v2.7.6 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling aws-lc-rs v1.15.2 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling rustls-pki-types v1.13.2 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling bigdecimal v0.4.10 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling webpki-roots v1.0.5 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling libm v0.2.15 [INFO] [stderr] Compiling zmij v1.0.12 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking socket2 v0.6.1 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Compiling cc v1.2.51 [INFO] [stderr] Checking uuid v1.19.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking unicode-properties v0.1.4 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Compiling aws-lc-sys v0.35.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling whoami v1.6.1 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking flate2 v1.1.5 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking as-slice v0.2.1 [INFO] [stderr] Checking weezl v0.1.12 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Checking openssl-probe v0.2.0 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Checking rustls-native-certs v0.8.3 [INFO] [stderr] Checking aligned v0.4.3 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking rgb v0.8.53 [INFO] [stderr] Compiling libdeflate-sys v1.25.2 [INFO] [stderr] Compiling nasm-rs v0.3.2 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Checking y4m v0.8.0 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Checking bitstream-io v4.9.0 [INFO] [stderr] Compiling mozjpeg-sys v2.2.3 [INFO] [stderr] Checking raw-cpuid v11.6.0 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Checking terminal_size v0.4.3 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [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] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling zerocopy-derive v0.8.33 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling inherent v1.0.13 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Compiling sea-query-derive v0.4.3 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Compiling sea-bae v0.2.1 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling rustls-webpki v0.103.8 [INFO] [stderr] Checking av1-grain v0.2.5 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking futures-intrusive v0.5.0 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking pom v1.1.0 [INFO] [stderr] Checking imgref v1.12.0 [INFO] [stderr] Checking ouroboros v0.18.5 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking sea-query v0.32.7 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking metrics v0.24.3 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling sea-orm-macros v1.1.19 [INFO] [stderr] Checking nom_locate v5.0.0 [INFO] [stderr] Checking quanta v0.12.6 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking fax v0.2.6 [INFO] [stderr] Checking zune-jpeg v0.4.21 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling sea-schema-derive v0.3.0 [INFO] [stderr] Checking cbc v0.1.2 [INFO] [stderr] Checking ecb v0.1.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking rand_xoshiro v0.7.0 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking avif-serialize v0.8.8 [INFO] [stderr] Compiling sqlx-core v0.8.6 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Checking rangemap v1.7.1 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking glob v0.3.3 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking bumpalo v3.19.1 [INFO] [stderr] Checking sketches-ddsketch v0.3.0 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking pxfm v0.1.28 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking base64ct v1.8.2 [INFO] [stderr] Compiling metrics-exporter-prometheus v0.18.1 [INFO] [stderr] Checking data-encoding v2.9.0 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking zopfli v0.8.3 [INFO] [stderr] Checking exr v1.74.0 [INFO] [stderr] Checking metrics-util v0.20.1 [INFO] [stderr] Checking sea-orm-cli v1.1.19 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking gif v0.14.1 [INFO] [stderr] Checking tungstenite v0.28.0 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Checking tiff v0.10.3 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking libdeflater v1.25.2 [INFO] [stderr] Checking type1-encoding-parser v0.1.0 [INFO] [stderr] Checking adobe-cmap-parser v0.4.1 [INFO] [stderr] Checking fancy-regex v0.13.0 [INFO] [stderr] Checking simple_asn1 v0.6.3 [INFO] [stderr] Checking axum-core v0.5.6 [INFO] [stderr] Checking bstr v1.12.1 [INFO] [stderr] Compiling axum-macros v0.5.0 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking serde_path_to_error v0.1.20 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking pem v3.0.6 [INFO] [stderr] Checking euclid v0.20.14 [INFO] [stderr] Compiling include_dir_macros v0.7.4 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking postscript v0.14.1 [INFO] [stderr] Checking lopdf v0.38.0 [INFO] [stderr] Checking parse-size v1.1.0 [INFO] [stderr] Checking cff-parser v0.1.0 [INFO] [stderr] Compiling monoize v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking tiktoken-rs v0.9.1 [INFO] [stderr] Checking include_dir v0.7.4 [INFO] [stderr] Checking eventsource-stream v0.2.3 [INFO] [stderr] Checking oxipng v10.1.0 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking jsonwebtoken v9.3.1 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Checking tokio-tungstenite v0.28.0 [INFO] [stderr] Checking inventory v0.3.21 [INFO] [stderr] Compiling sqlx-sqlite v0.8.6 [INFO] [stderr] Compiling sqlx-postgres v0.8.6 [INFO] [stderr] Checking moxcms v0.7.11 [INFO] [stderr] Checking tempfile v3.24.0 [INFO] [stderr] Checking ravif v0.12.0 [INFO] [stderr] Checking mozjpeg v0.10.13 [INFO] [stderr] Checking pdf-extract v0.10.0 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Checking image v0.25.9 [INFO] [stderr] Checking axum v0.8.8 [INFO] [stderr] Compiling sqlx-macros-core v0.8.6 [INFO] [stderr] Compiling sqlx-macros v0.8.6 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking rustls-platform-verifier v0.6.2 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking reqwest v0.13.1 [INFO] [stderr] Checking sqlx v0.8.6 [INFO] [stderr] Checking sea-query-binder v0.7.0 [INFO] [stderr] Checking sea-orm v1.1.19 [INFO] [stderr] Checking sea-schema v0.16.2 [INFO] [stderr] Checking sea-orm-migration v1.1.19 [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/db/mod.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | / if let Some(parent) = path.parent() { [INFO] [stdout] 226 | | if !parent.as_os_str().is_empty() { [INFO] [stdout] 227 | | std::fs::create_dir_all(parent) [INFO] [stdout] 228 | | .map_err(|err| format!("sqlite_dir_create_failed: {err}"))?; [INFO] [stdout] 229 | | } [INFO] [stdout] 230 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 225 ~ if let Some(parent) = path.parent() [INFO] [stdout] 226 ~ && !parent.as_os_str().is_empty() { [INFO] [stdout] 227 | std::fs::create_dir_all(parent) [INFO] [stdout] 228 | .map_err(|err| format!("sqlite_dir_create_failed: {err}"))?; [INFO] [stdout] 229 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LastUsedBatcher` [INFO] [stdout] --> src/db_cache.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / pub fn new() -> Self { [INFO] [stdout] 21 | | Self { [INFO] [stdout] 22 | | buffer: Arc::new(DashMap::new()), [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 19 + impl Default for LastUsedBatcher { [INFO] [stdout] 20 + fn default() -> Self { [INFO] [stdout] 21 + Self::new() [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/db_cache.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | return; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 220 - tracing::warn!("request_log_batcher commit error: {e}"); [INFO] [stdout] 221 - return; [INFO] [stdout] 220 + tracing::warn!("request_log_batcher commit error: {e}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/db_cache.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 102 | let drained = std::mem::replace(&mut *buf, Vec::with_capacity(self.capacity_hint)); [INFO] [stdout] | ----------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 103 | drained [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 102 ~ [INFO] [stdout] 103 ~ std::mem::replace(&mut *buf, Vec::with_capacity(self.capacity_hint)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/app.rs:390:22 [INFO] [stdout] | [INFO] [stdout] 390 | fn init_metrics() -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | / if !user.balance_unlimited { [INFO] [stdout] 431 | | if let Err(err) = user_store [INFO] [stdout] 432 | | .update_user(&user.id, None, None, None, None, None, Some(true), None) [INFO] [stdout] 433 | | .await [INFO] [stdout] ... | [INFO] [stdout] 437 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 430 ~ if !user.balance_unlimited [INFO] [stdout] 431 ~ && let Err(err) = user_store [INFO] [stdout] 432 | .update_user(&user.id, None, None, None, None, None, Some(true), None) [INFO] [stdout] ... [INFO] [stdout] 435 | tracing::warn!("failed to set active probe system user unlimited balance: {err}"); [INFO] [stdout] 436 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/auth.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / if token.starts_with("sk-") && token.len() >= 12 { [INFO] [stdout] 44 | | if let Some(store) = user_store { [INFO] [stdout] 45 | | match store.validate_api_key(token).await { [INFO] [stdout] 46 | | Ok(Some((api_key, user))) => { [INFO] [stdout] ... | [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 43 ~ if token.starts_with("sk-") && token.len() >= 12 [INFO] [stdout] 44 ~ && let Some(store) = user_store { [INFO] [stdout] 45 | match store.validate_api_key(token).await { [INFO] [stdout] ... [INFO] [stdout] 65 | } [INFO] [stdout] 66 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/db/mod.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | / if let Some(parent) = path.parent() { [INFO] [stdout] 226 | | if !parent.as_os_str().is_empty() { [INFO] [stdout] 227 | | std::fs::create_dir_all(parent) [INFO] [stdout] 228 | | .map_err(|err| format!("sqlite_dir_create_failed: {err}"))?; [INFO] [stdout] 229 | | } [INFO] [stdout] 230 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 225 ~ if let Some(parent) = path.parent() [INFO] [stdout] 226 ~ && !parent.as_os_str().is_empty() { [INFO] [stdout] 227 | std::fs::create_dir_all(parent) [INFO] [stdout] 228 | .map_err(|err| format!("sqlite_dir_create_failed: {err}"))?; [INFO] [stdout] 229 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LastUsedBatcher` [INFO] [stdout] --> src/db_cache.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / pub fn new() -> Self { [INFO] [stdout] 21 | | Self { [INFO] [stdout] 22 | | buffer: Arc::new(DashMap::new()), [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 19 + impl Default for LastUsedBatcher { [INFO] [stdout] 20 + fn default() -> Self { [INFO] [stdout] 21 + Self::new() [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/db_cache.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | return; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 220 - tracing::warn!("request_log_batcher commit error: {e}"); [INFO] [stdout] 221 - return; [INFO] [stdout] 220 + tracing::warn!("request_log_batcher commit error: {e}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/db_cache.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 102 | let drained = std::mem::replace(&mut *buf, Vec::with_capacity(self.capacity_hint)); [INFO] [stdout] | ----------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 103 | drained [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 102 ~ [INFO] [stdout] 103 ~ std::mem::replace(&mut *buf, Vec::with_capacity(self.capacity_hint)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/settings.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / if let Some(v) = body.monoize_passive_failure_rate_threshold { [INFO] [stdout] 121 | | if v.is_finite() { [INFO] [stdout] 122 | | settings.monoize_passive_failure_rate_threshold = v.clamp(0.01, 1.0); [INFO] [stdout] 123 | | } [INFO] [stdout] 124 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 120 ~ if let Some(v) = body.monoize_passive_failure_rate_threshold [INFO] [stdout] 121 ~ && v.is_finite() { [INFO] [stdout] 122 | settings.monoize_passive_failure_rate_threshold = v.clamp(0.01, 1.0); [INFO] [stdout] 123 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/settings.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 238 | / if let Some(at_pos) = dsn.find('@') { [INFO] [stdout] 239 | | if let Some(scheme_end) = dsn.find("://") { [INFO] [stdout] 240 | | return format!("{}://***@{}", &dsn[..scheme_end], &dsn[at_pos + 1..]); [INFO] [stdout] 241 | | } [INFO] [stdout] 242 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 238 ~ if let Some(at_pos) = dsn.find('@') [INFO] [stdout] 239 ~ && let Some(scheme_end) = dsn.find("://") { [INFO] [stdout] 240 | return format!("{}://***@{}", &dsn[..scheme_end], &dsn[at_pos + 1..]); [INFO] [stdout] 241 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/users.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | / if let Some(role) = new_role { [INFO] [stdout] 164 | | if !current_user.role.can_assign_role(role) { [INFO] [stdout] 165 | | return Err(AppError::new( [INFO] [stdout] 166 | | StatusCode::FORBIDDEN, [INFO] [stdout] ... | [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 163 ~ if let Some(role) = new_role [INFO] [stdout] 164 ~ && !current_user.role.can_assign_role(role) { [INFO] [stdout] 165 | return Err(AppError::new( [INFO] [stdout] ... [INFO] [stdout] 169 | )); [INFO] [stdout] 170 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/users.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | / if let Some(ref password) = body.password { [INFO] [stdout] 191 | | if password.len() < 8 { [INFO] [stdout] 192 | | return Err(AppError::new( [INFO] [stdout] 193 | | StatusCode::BAD_REQUEST, [INFO] [stdout] ... | [INFO] [stdout] 198 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 190 ~ if let Some(ref password) = body.password [INFO] [stdout] 191 ~ && password.len() < 8 { [INFO] [stdout] 192 | return Err(AppError::new( [INFO] [stdout] ... [INFO] [stdout] 196 | )); [INFO] [stdout] 197 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/helpers.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/helpers.rs:61:6 [INFO] [stdout] | [INFO] [stdout] 61 | ) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/handlers/helpers.rs:110:86 [INFO] [stdout] | [INFO] [stdout] 110 | metrics.estimated_decoded_bytes += estimate_base64_decoded_bytes(&data); [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/handlers/helpers.rs:113:73 [INFO] [stdout] | [INFO] [stdout] 113 | if let Some(data) = extract_base64_data_url_payload(&url) { [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/handlers/helpers.rs:131:1 [INFO] [stdout] | [INFO] [stdout] 131 | / pub(super) fn log_outgoing_request_shape( [INFO] [stdout] 132 | | request_id: Option<&str>, [INFO] [stdout] 133 | | downstream_model: &str, [INFO] [stdout] 134 | | upstream_model: &str, [INFO] [stdout] ... | [INFO] [stdout] 139 | | req: &urp::UrpRequest, [INFO] [stdout] 140 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/helpers.rs:360:6 [INFO] [stdout] | [INFO] [stdout] 360 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/nonstream.rs:222:6 [INFO] [stdout] | [INFO] [stdout] 222 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/nonstream.rs:244:6 [INFO] [stdout] | [INFO] [stdout] 244 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/handlers/request_logging.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / fn broadcast_pending_snapshot( [INFO] [stdout] 11 | | state: &AppState, [INFO] [stdout] 12 | | auth: &crate::auth::AuthResult, [INFO] [stdout] 13 | | request_id: &str, [INFO] [stdout] ... | [INFO] [stdout] 21 | | created_at: chrono::DateTime, [INFO] [stdout] 22 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/handlers/request_logging.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | / pub(super) async fn update_pending_channel_info( [INFO] [stdout] 97 | | state: &AppState, [INFO] [stdout] 98 | | auth: &crate::auth::AuthResult, [INFO] [stdout] 99 | | attempt: &MonoizeAttempt, [INFO] [stdout] ... | [INFO] [stdout] 104 | | started_at: std::time::Instant, [INFO] [stdout] 105 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/request_logging.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | / if !quota_unlimited { [INFO] [stdout] 248 | | if let Some(key_id) = api_key_id_for_quota.as_deref() { [INFO] [stdout] 249 | | if let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] ... | [INFO] [stdout] 253 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 247 ~ if !quota_unlimited [INFO] [stdout] 248 ~ && let Some(key_id) = api_key_id_for_quota.as_deref() { [INFO] [stdout] 249 | if let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] 251 | } [INFO] [stdout] 252 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/request_logging.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | / if let Some(key_id) = api_key_id_for_quota.as_deref() { [INFO] [stdout] 249 | | if let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] 251 | | } [INFO] [stdout] 252 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 248 ~ if let Some(key_id) = api_key_id_for_quota.as_deref() [INFO] [stdout] 249 ~ && let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/handlers/routing.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 64 - settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] 64 + settings_entries.sort_by_key(|b| std::cmp::Reverse(b.0.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/routing.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | / if let Some(base) = requested_model.strip_suffix(suffix) { [INFO] [stdout] 71 | | if !base.is_empty() { [INFO] [stdout] 72 | | match req.reasoning.as_mut() { [INFO] [stdout] 73 | | Some(r) => { [INFO] [stdout] ... | [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 70 ~ if let Some(base) = requested_model.strip_suffix(suffix) [INFO] [stdout] 71 ~ && !base.is_empty() { [INFO] [stdout] 72 | match req.reasoning.as_mut() { [INFO] [stdout] ... [INFO] [stdout] 83 | return; [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/handlers/routing.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 119 - settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] 119 + settings_entries.sort_by_key(|b| std::cmp::Reverse(b.0.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/routing.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / if let Some(base) = requested_model.strip_suffix(suffix) { [INFO] [stdout] 126 | | if !base.is_empty() && model_exists(base) { [INFO] [stdout] 127 | | return base.to_string(); [INFO] [stdout] 128 | | } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 125 ~ if let Some(base) = requested_model.strip_suffix(suffix) [INFO] [stdout] 126 ~ && !base.is_empty() && model_exists(base) { [INFO] [stdout] 127 | return base.to_string(); [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/routing.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | / if let Some(max_multiplier) = urp.max_multiplier { [INFO] [stdout] 200 | | if model_entry.multiplier > max_multiplier { [INFO] [stdout] 201 | | return; [INFO] [stdout] 202 | | } [INFO] [stdout] 203 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 199 ~ if let Some(max_multiplier) = urp.max_multiplier [INFO] [stdout] 200 ~ && model_entry.multiplier > max_multiplier { [INFO] [stdout] 201 | return; [INFO] [stdout] 202 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/handlers/streaming.rs:318:41 [INFO] [stdout] | [INFO] [stdout] 318 | .unwrap_or_else(|e| { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 319 | | Err(AppError::new( [INFO] [stdout] 320 | | StatusCode::INTERNAL_SERVER_ERROR, [INFO] [stdout] 321 | | "task_panic", [INFO] [stdout] 322 | | e.to_string(), [INFO] [stdout] 323 | | )) [INFO] [stdout] 324 | | }) [INFO] [stdout] | |_________________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/handlers/streaming.rs:325:62 [INFO] [stdout] | [INFO] [stdout] 325 | .and(transform_result.unwrap_or_else(|e| { [INFO] [stdout] | ______________________________________________________________^ [INFO] [stdout] 326 | | Err(AppError::new( [INFO] [stdout] 327 | | StatusCode::INTERNAL_SERVER_ERROR, [INFO] [stdout] 328 | | "task_panic", [INFO] [stdout] 329 | | e.to_string(), [INFO] [stdout] 330 | | )) [INFO] [stdout] 331 | | })) [INFO] [stdout] | |_________________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/handlers/streaming.rs:332:59 [INFO] [stdout] | [INFO] [stdout] 332 | .and(encode_result.unwrap_or_else(|e| { [INFO] [stdout] | ___________________________________________________________^ [INFO] [stdout] 333 | | Err(AppError::new( [INFO] [stdout] 334 | | StatusCode::INTERNAL_SERVER_ERROR, [INFO] [stdout] 335 | | "task_panic", [INFO] [stdout] 336 | | e.to_string(), [INFO] [stdout] 337 | | )) [INFO] [stdout] 338 | | })); [INFO] [stdout] | |_________________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/mod.rs:43:81 [INFO] [stdout] | [INFO] [stdout] 43 | fn ensure_model_allowed(auth: &crate::auth::AuthResult, logical_model: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/mod.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | / if let Some(remaining) = auth.quota_remaining { [INFO] [stdout] 630 | | if remaining <= 0 { [INFO] [stdout] 631 | | return Err(AppError::new( [INFO] [stdout] 632 | | StatusCode::TOO_MANY_REQUESTS, [INFO] [stdout] ... | [INFO] [stdout] 637 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 629 ~ if let Some(remaining) = auth.quota_remaining [INFO] [stdout] 630 ~ && remaining <= 0 { [INFO] [stdout] 631 | return Err(AppError::new( [INFO] [stdout] ... [INFO] [stdout] 635 | )); [INFO] [stdout] 636 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/mod.rs:644:6 [INFO] [stdout] | [INFO] [stdout] 644 | ) -> AppResult<(Value, Map)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/mod.rs:675:67 [INFO] [stdout] | [INFO] [stdout] 675 | fn parse_urp_request(known: &Value, extra: Map) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:942:5 [INFO] [stdout] | [INFO] [stdout] 942 | / if let Some((prefix, _)) = segment.split_once("--") { [INFO] [stdout] 943 | | if is_known_provider_prefix(prefix) { [INFO] [stdout] 944 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | | segment = rest.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 948 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 942 ~ if let Some((prefix, _)) = segment.split_once("--") [INFO] [stdout] 943 ~ && is_known_provider_prefix(prefix) { [INFO] [stdout] 944 | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | segment = rest.to_string(); [INFO] [stdout] 946 | } [INFO] [stdout] 947 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | / if is_known_provider_prefix(prefix) { [INFO] [stdout] 944 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | | segment = rest.to_string(); [INFO] [stdout] 946 | | } [INFO] [stdout] 947 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 943 ~ if is_known_provider_prefix(prefix) [INFO] [stdout] 944 ~ && let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | segment = rest.to_string(); [INFO] [stdout] 946 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:950:5 [INFO] [stdout] | [INFO] [stdout] 950 | / if let Some((prefix, _)) = segment.split_once('.') { [INFO] [stdout] 951 | | if is_known_provider_prefix(prefix) { [INFO] [stdout] 952 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | | segment = rest.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 956 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 950 ~ if let Some((prefix, _)) = segment.split_once('.') [INFO] [stdout] 951 ~ && is_known_provider_prefix(prefix) { [INFO] [stdout] 952 | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | segment = rest.to_string(); [INFO] [stdout] 954 | } [INFO] [stdout] 955 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:951:9 [INFO] [stdout] | [INFO] [stdout] 951 | / if is_known_provider_prefix(prefix) { [INFO] [stdout] 952 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | | segment = rest.to_string(); [INFO] [stdout] 954 | | } [INFO] [stdout] 955 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 951 ~ if is_known_provider_prefix(prefix) [INFO] [stdout] 952 ~ && let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | segment = rest.to_string(); [INFO] [stdout] 954 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/app.rs:390:22 [INFO] [stdout] | [INFO] [stdout] 390 | fn init_metrics() -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | / if !user.balance_unlimited { [INFO] [stdout] 431 | | if let Err(err) = user_store [INFO] [stdout] 432 | | .update_user(&user.id, None, None, None, None, None, Some(true), None) [INFO] [stdout] 433 | | .await [INFO] [stdout] ... | [INFO] [stdout] 437 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 430 ~ if !user.balance_unlimited [INFO] [stdout] 431 ~ && let Err(err) = user_store [INFO] [stdout] 432 | .update_user(&user.id, None, None, None, None, None, Some(true), None) [INFO] [stdout] ... [INFO] [stdout] 435 | tracing::warn!("failed to set active probe system user unlimited balance: {err}"); [INFO] [stdout] 436 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/auth.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / if token.starts_with("sk-") && token.len() >= 12 { [INFO] [stdout] 44 | | if let Some(store) = user_store { [INFO] [stdout] 45 | | match store.validate_api_key(token).await { [INFO] [stdout] 46 | | Ok(Some((api_key, user))) => { [INFO] [stdout] ... | [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 43 ~ if token.starts_with("sk-") && token.len() >= 12 [INFO] [stdout] 44 ~ && let Some(store) = user_store { [INFO] [stdout] 45 | match store.validate_api_key(token).await { [INFO] [stdout] ... [INFO] [stdout] 65 | } [INFO] [stdout] 66 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | / if let Some(until) = self.cooldown_until { [INFO] [stdout] 262 | | if now_ts < until { [INFO] [stdout] 263 | | return "unhealthy"; [INFO] [stdout] 264 | | } [INFO] [stdout] 265 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(until) = self.cooldown_until [INFO] [stdout] 262 ~ && now_ts < until { [INFO] [stdout] 263 | return "unhealthy"; [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:372:9 [INFO] [stdout] | [INFO] [stdout] 372 | / if let Some(v) = input.active_probe_interval_seconds_override { [INFO] [stdout] 373 | | if v == 0 { [INFO] [stdout] 374 | | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 375 | | } [INFO] [stdout] 376 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 372 ~ if let Some(v) = input.active_probe_interval_seconds_override [INFO] [stdout] 373 ~ && v == 0 { [INFO] [stdout] 374 | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 375 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:377:9 [INFO] [stdout] | [INFO] [stdout] 377 | / if let Some(v) = input.active_probe_success_threshold_override { [INFO] [stdout] 378 | | if v == 0 { [INFO] [stdout] 379 | | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 380 | | } [INFO] [stdout] 381 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 377 ~ if let Some(v) = input.active_probe_success_threshold_override [INFO] [stdout] 378 ~ && v == 0 { [INFO] [stdout] 379 | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 380 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:382:9 [INFO] [stdout] | [INFO] [stdout] 382 | / if let Some(v) = input.request_timeout_ms_override { [INFO] [stdout] 383 | | if v == 0 { [INFO] [stdout] 384 | | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 385 | | } [INFO] [stdout] 386 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 382 ~ if let Some(v) = input.request_timeout_ms_override [INFO] [stdout] 383 ~ && v == 0 { [INFO] [stdout] 384 | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 385 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | / if let Some(Some(v)) = input.active_probe_interval_seconds_override { [INFO] [stdout] 471 | | if v == 0 { [INFO] [stdout] 472 | | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 473 | | } [INFO] [stdout] 474 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 470 ~ if let Some(Some(v)) = input.active_probe_interval_seconds_override [INFO] [stdout] 471 ~ && v == 0 { [INFO] [stdout] 472 | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 473 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:475:9 [INFO] [stdout] | [INFO] [stdout] 475 | / if let Some(Some(v)) = input.active_probe_success_threshold_override { [INFO] [stdout] 476 | | if v == 0 { [INFO] [stdout] 477 | | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 478 | | } [INFO] [stdout] 479 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 475 ~ if let Some(Some(v)) = input.active_probe_success_threshold_override [INFO] [stdout] 476 ~ && v == 0 { [INFO] [stdout] 477 | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 478 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | / if let Some(Some(v)) = input.request_timeout_ms_override { [INFO] [stdout] 481 | | if v == 0 { [INFO] [stdout] 482 | | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 483 | | } [INFO] [stdout] 484 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 480 ~ if let Some(Some(v)) = input.request_timeout_ms_override [INFO] [stdout] 481 ~ && v == 0 { [INFO] [stdout] 482 | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 483 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1029:9 [INFO] [stdout] | [INFO] [stdout] 1029 | / if let Some(v) = c.passive_failure_threshold_override { [INFO] [stdout] 1030 | | if v < 1 { [INFO] [stdout] 1031 | | return Err("channel passive_failure_threshold_override must be >= 1".to_string()); [INFO] [stdout] 1032 | | } [INFO] [stdout] 1033 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1029 ~ if let Some(v) = c.passive_failure_threshold_override [INFO] [stdout] 1030 ~ && v < 1 { [INFO] [stdout] 1031 | return Err("channel passive_failure_threshold_override must be >= 1".to_string()); [INFO] [stdout] 1032 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1034:9 [INFO] [stdout] | [INFO] [stdout] 1034 | / if let Some(v) = c.passive_cooldown_seconds_override { [INFO] [stdout] 1035 | | if v < 1 { [INFO] [stdout] 1036 | | return Err("channel passive_cooldown_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1037 | | } [INFO] [stdout] 1038 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1034 ~ if let Some(v) = c.passive_cooldown_seconds_override [INFO] [stdout] 1035 ~ && v < 1 { [INFO] [stdout] 1036 | return Err("channel passive_cooldown_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1037 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1039:9 [INFO] [stdout] | [INFO] [stdout] 1039 | / if let Some(v) = c.passive_window_seconds_override { [INFO] [stdout] 1040 | | if v < 1 { [INFO] [stdout] 1041 | | return Err("channel passive_window_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1042 | | } [INFO] [stdout] 1043 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1039 ~ if let Some(v) = c.passive_window_seconds_override [INFO] [stdout] 1040 ~ && v < 1 { [INFO] [stdout] 1041 | return Err("channel passive_window_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1042 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1044:9 [INFO] [stdout] | [INFO] [stdout] 1044 | / if let Some(v) = c.passive_min_samples_override { [INFO] [stdout] 1045 | | if v < 1 { [INFO] [stdout] 1046 | | return Err("channel passive_min_samples_override must be >= 1".to_string()); [INFO] [stdout] 1047 | | } [INFO] [stdout] 1048 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1044 ~ if let Some(v) = c.passive_min_samples_override [INFO] [stdout] 1045 ~ && v < 1 { [INFO] [stdout] 1046 | return Err("channel passive_min_samples_override must be >= 1".to_string()); [INFO] [stdout] 1047 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1049:9 [INFO] [stdout] | [INFO] [stdout] 1049 | / if let Some(v) = c.passive_failure_rate_threshold_override { [INFO] [stdout] 1050 | | if !(v.is_finite() && (0.01..=1.0).contains(&v)) { [INFO] [stdout] 1051 | | return Err( [INFO] [stdout] 1052 | | "channel passive_failure_rate_threshold_override must be in [0.01, 1.0]" [INFO] [stdout] ... | [INFO] [stdout] 1056 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1049 ~ if let Some(v) = c.passive_failure_rate_threshold_override [INFO] [stdout] 1050 ~ && !(v.is_finite() && (0.01..=1.0).contains(&v)) { [INFO] [stdout] 1051 | return Err( [INFO] [stdout] ... [INFO] [stdout] 1054 | ); [INFO] [stdout] 1055 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1057:9 [INFO] [stdout] | [INFO] [stdout] 1057 | / if let Some(v) = c.passive_rate_limit_cooldown_seconds_override { [INFO] [stdout] 1058 | | if v < 1 { [INFO] [stdout] 1059 | | return Err( [INFO] [stdout] 1060 | | "channel passive_rate_limit_cooldown_seconds_override must be >= 1".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 1063 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1057 ~ if let Some(v) = c.passive_rate_limit_cooldown_seconds_override [INFO] [stdout] 1058 ~ && v < 1 { [INFO] [stdout] 1059 | return Err( [INFO] [stdout] 1060 | "channel passive_rate_limit_cooldown_seconds_override must be >= 1".to_string(), [INFO] [stdout] 1061 | ); [INFO] [stdout] 1062 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1064:9 [INFO] [stdout] | [INFO] [stdout] 1064 | / if let Some(id) = &c.id { [INFO] [stdout] 1065 | | if !ids.insert(id.clone()) { [INFO] [stdout] 1066 | | return Err("duplicate channel id".to_string()); [INFO] [stdout] 1067 | | } [INFO] [stdout] 1068 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1064 ~ if let Some(id) = &c.id [INFO] [stdout] 1065 ~ && !ids.insert(id.clone()) { [INFO] [stdout] 1066 | return Err("duplicate channel id".to_string()); [INFO] [stdout] 1067 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/settings.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / if let Some(v) = body.monoize_passive_failure_rate_threshold { [INFO] [stdout] 121 | | if v.is_finite() { [INFO] [stdout] 122 | | settings.monoize_passive_failure_rate_threshold = v.clamp(0.01, 1.0); [INFO] [stdout] 123 | | } [INFO] [stdout] 124 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 120 ~ if let Some(v) = body.monoize_passive_failure_rate_threshold [INFO] [stdout] 121 ~ && v.is_finite() { [INFO] [stdout] 122 | settings.monoize_passive_failure_rate_threshold = v.clamp(0.01, 1.0); [INFO] [stdout] 123 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/settings.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 238 | / if let Some(at_pos) = dsn.find('@') { [INFO] [stdout] 239 | | if let Some(scheme_end) = dsn.find("://") { [INFO] [stdout] 240 | | return format!("{}://***@{}", &dsn[..scheme_end], &dsn[at_pos + 1..]); [INFO] [stdout] 241 | | } [INFO] [stdout] 242 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 238 ~ if let Some(at_pos) = dsn.find('@') [INFO] [stdout] 239 ~ && let Some(scheme_end) = dsn.find("://") { [INFO] [stdout] 240 | return format!("{}://***@{}", &dsn[..scheme_end], &dsn[at_pos + 1..]); [INFO] [stdout] 241 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/users.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | / if let Some(role) = new_role { [INFO] [stdout] 164 | | if !current_user.role.can_assign_role(role) { [INFO] [stdout] 165 | | return Err(AppError::new( [INFO] [stdout] 166 | | StatusCode::FORBIDDEN, [INFO] [stdout] ... | [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 163 ~ if let Some(role) = new_role [INFO] [stdout] 164 ~ && !current_user.role.can_assign_role(role) { [INFO] [stdout] 165 | return Err(AppError::new( [INFO] [stdout] ... [INFO] [stdout] 169 | )); [INFO] [stdout] 170 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dashboard_handlers/users.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | / if let Some(ref password) = body.password { [INFO] [stdout] 191 | | if password.len() < 8 { [INFO] [stdout] 192 | | return Err(AppError::new( [INFO] [stdout] 193 | | StatusCode::BAD_REQUEST, [INFO] [stdout] ... | [INFO] [stdout] 198 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 190 ~ if let Some(ref password) = body.password [INFO] [stdout] 191 ~ && password.len() < 8 { [INFO] [stdout] 192 | return Err(AppError::new( [INFO] [stdout] ... [INFO] [stdout] 196 | )); [INFO] [stdout] 197 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/providers.rs:538:9 [INFO] [stdout] | [INFO] [stdout] 538 | / if let Some(members) = &input.members { [INFO] [stdout] 539 | | if existing.provider_type == ProviderType::Group { [INFO] [stdout] 540 | | self.db [INFO] [stdout] 541 | | .write().await [INFO] [stdout] ... | [INFO] [stdout] 553 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 538 ~ if let Some(members) = &input.members [INFO] [stdout] 539 ~ && existing.provider_type == ProviderType::Group { [INFO] [stdout] 540 | self.db [INFO] [stdout] ... [INFO] [stdout] 551 | } [INFO] [stdout] 552 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/helpers.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/helpers.rs:61:6 [INFO] [stdout] | [INFO] [stdout] 61 | ) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/handlers/helpers.rs:110:86 [INFO] [stdout] | [INFO] [stdout] 110 | metrics.estimated_decoded_bytes += estimate_base64_decoded_bytes(&data); [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/handlers/helpers.rs:113:73 [INFO] [stdout] | [INFO] [stdout] 113 | if let Some(data) = extract_base64_data_url_payload(&url) { [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/handlers/helpers.rs:131:1 [INFO] [stdout] | [INFO] [stdout] 131 | / pub(super) fn log_outgoing_request_shape( [INFO] [stdout] 132 | | request_id: Option<&str>, [INFO] [stdout] 133 | | downstream_model: &str, [INFO] [stdout] 134 | | upstream_model: &str, [INFO] [stdout] ... | [INFO] [stdout] 139 | | req: &urp::UrpRequest, [INFO] [stdout] 140 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/helpers.rs:360:6 [INFO] [stdout] | [INFO] [stdout] 360 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/nonstream.rs:222:6 [INFO] [stdout] | [INFO] [stdout] 222 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/nonstream.rs:244:6 [INFO] [stdout] | [INFO] [stdout] 244 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/handlers/request_logging.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / fn broadcast_pending_snapshot( [INFO] [stdout] 11 | | state: &AppState, [INFO] [stdout] 12 | | auth: &crate::auth::AuthResult, [INFO] [stdout] 13 | | request_id: &str, [INFO] [stdout] ... | [INFO] [stdout] 21 | | created_at: chrono::DateTime, [INFO] [stdout] 22 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/handlers/request_logging.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | / pub(super) async fn update_pending_channel_info( [INFO] [stdout] 97 | | state: &AppState, [INFO] [stdout] 98 | | auth: &crate::auth::AuthResult, [INFO] [stdout] 99 | | attempt: &MonoizeAttempt, [INFO] [stdout] ... | [INFO] [stdout] 104 | | started_at: std::time::Instant, [INFO] [stdout] 105 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/request_logging.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | / if !quota_unlimited { [INFO] [stdout] 248 | | if let Some(key_id) = api_key_id_for_quota.as_deref() { [INFO] [stdout] 249 | | if let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] ... | [INFO] [stdout] 253 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 247 ~ if !quota_unlimited [INFO] [stdout] 248 ~ && let Some(key_id) = api_key_id_for_quota.as_deref() { [INFO] [stdout] 249 | if let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] 251 | } [INFO] [stdout] 252 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/request_logging.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | / if let Some(key_id) = api_key_id_for_quota.as_deref() { [INFO] [stdout] 249 | | if let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] 251 | | } [INFO] [stdout] 252 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 248 ~ if let Some(key_id) = api_key_id_for_quota.as_deref() [INFO] [stdout] 249 ~ && let Err(e) = user_store.decrement_api_key_quota(key_id).await { [INFO] [stdout] 250 | tracing::warn!("failed to decrement api key quota: {e}"); [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/handlers/routing.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 64 - settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] 64 + settings_entries.sort_by_key(|b| std::cmp::Reverse(b.0.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/routing.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | / if let Some(base) = requested_model.strip_suffix(suffix) { [INFO] [stdout] 71 | | if !base.is_empty() { [INFO] [stdout] 72 | | match req.reasoning.as_mut() { [INFO] [stdout] 73 | | Some(r) => { [INFO] [stdout] ... | [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 70 ~ if let Some(base) = requested_model.strip_suffix(suffix) [INFO] [stdout] 71 ~ && !base.is_empty() { [INFO] [stdout] 72 | match req.reasoning.as_mut() { [INFO] [stdout] ... [INFO] [stdout] 83 | return; [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/handlers/routing.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 119 - settings_entries.sort_by(|a, b| b.0.len().cmp(&a.0.len())); [INFO] [stdout] 119 + settings_entries.sort_by_key(|b| std::cmp::Reverse(b.0.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/routing.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / if let Some(base) = requested_model.strip_suffix(suffix) { [INFO] [stdout] 126 | | if !base.is_empty() && model_exists(base) { [INFO] [stdout] 127 | | return base.to_string(); [INFO] [stdout] 128 | | } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 125 ~ if let Some(base) = requested_model.strip_suffix(suffix) [INFO] [stdout] 126 ~ && !base.is_empty() && model_exists(base) { [INFO] [stdout] 127 | return base.to_string(); [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/routing.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | / if let Some(max_multiplier) = urp.max_multiplier { [INFO] [stdout] 200 | | if model_entry.multiplier > max_multiplier { [INFO] [stdout] 201 | | return; [INFO] [stdout] 202 | | } [INFO] [stdout] 203 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 199 ~ if let Some(max_multiplier) = urp.max_multiplier [INFO] [stdout] 200 ~ && model_entry.multiplier > max_multiplier { [INFO] [stdout] 201 | return; [INFO] [stdout] 202 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/transforms/mod.rs:182:1 [INFO] [stdout] | [INFO] [stdout] 182 | mod registry_tests { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | / pub fn build_states_for_rules( [INFO] [stdout] 204 | | rules: &[TransformRuleConfig], [INFO] [stdout] 205 | | registry: &TransformRegistry, [INFO] [stdout] 206 | | ) -> Result>, TransformError> { [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 218 | / pub async fn apply_transforms( [INFO] [stdout] 219 | | mut data: UrpData<'_>, [INFO] [stdout] 220 | | rules: &[TransformRuleConfig], [INFO] [stdout] 221 | | states: &mut [Box], [INFO] [stdout] ... | [INFO] [stdout] 225 | | registry: &TransformRegistry, [INFO] [stdout] 226 | | ) -> Result<(), TransformError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn model_glob_match(pattern: &str, model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn text_part(content: impl Into) -> Part { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn move_system_to_developer(items: &mut [Item]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub fn merge_same_role_items(items: &[Item]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | pub fn strip_reasoning_parts(parts: &[Part]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | pub fn request_messages(req: &UrpRequest) -> &[Item] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | pub fn request_messages_mut(req: &mut UrpRequest) -> &mut Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | pub fn response_output_items_mut(resp: &mut UrpResponse) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | pub fn ensure_assistant_output_message(resp: &mut UrpResponse) -> &mut Item { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub fn set_extra_path(extra: &mut HashMap, path: &str, value: Value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn remove_extra_path(extra: &mut HashMap, path: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 421 | pub fn state_set_insert(state: &mut dyn TransformState, key: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 427 | pub fn state_set_contains(state: &mut dyn TransformState, key: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/append_empty_user_message.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | / if let Some(last) = messages.last() { [INFO] [stdout] 78 | | if matches!(last, Item::Message { role: Role::Assistant, .. }) { [INFO] [stdout] 79 | | messages.push(Item::text(Role::User, cfg.content.clone())); [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 77 ~ if let Some(last) = messages.last() [INFO] [stdout] 78 ~ && matches!(last, Item::Message { role: Role::Assistant, .. }) { [INFO] [stdout] 79 | messages.push(Item::text(Role::User, cfg.content.clone())); [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/handlers/streaming.rs:318:41 [INFO] [stdout] | [INFO] [stdout] 318 | .unwrap_or_else(|e| { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 319 | | Err(AppError::new( [INFO] [stdout] 320 | | StatusCode::INTERNAL_SERVER_ERROR, [INFO] [stdout] 321 | | "task_panic", [INFO] [stdout] 322 | | e.to_string(), [INFO] [stdout] 323 | | )) [INFO] [stdout] 324 | | }) [INFO] [stdout] | |_________________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/handlers/streaming.rs:325:62 [INFO] [stdout] | [INFO] [stdout] 325 | .and(transform_result.unwrap_or_else(|e| { [INFO] [stdout] | ______________________________________________________________^ [INFO] [stdout] 326 | | Err(AppError::new( [INFO] [stdout] 327 | | StatusCode::INTERNAL_SERVER_ERROR, [INFO] [stdout] 328 | | "task_panic", [INFO] [stdout] 329 | | e.to_string(), [INFO] [stdout] 330 | | )) [INFO] [stdout] 331 | | })) [INFO] [stdout] | |_________________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/handlers/streaming.rs:332:59 [INFO] [stdout] | [INFO] [stdout] 332 | .and(encode_result.unwrap_or_else(|e| { [INFO] [stdout] | ___________________________________________________________^ [INFO] [stdout] 333 | | Err(AppError::new( [INFO] [stdout] 334 | | StatusCode::INTERNAL_SERVER_ERROR, [INFO] [stdout] 335 | | "task_panic", [INFO] [stdout] 336 | | e.to_string(), [INFO] [stdout] 337 | | )) [INFO] [stdout] 338 | | })); [INFO] [stdout] | |_________________________^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/plaintext_reasoning_to_summary.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | / if !state.encrypted_parts.contains(part_index) { [INFO] [stdout] 113 | | if let Some(text) = content.take().filter(|text| !text.is_empty()) { [INFO] [stdout] 114 | | *summary = Some(text); [INFO] [stdout] 115 | | } [INFO] [stdout] 116 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 112 ~ if !state.encrypted_parts.contains(part_index) [INFO] [stdout] 113 ~ && let Some(text) = content.take().filter(|text| !text.is_empty()) { [INFO] [stdout] 114 | *summary = Some(text); [INFO] [stdout] 115 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/plaintext_reasoning_to_summary.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | / if let Part::Reasoning { encrypted, .. } = part { [INFO] [stdout] 122 | | if encrypted.is_some() { [INFO] [stdout] 123 | | state.encrypted_parts.insert(*part_index); [INFO] [stdout] 124 | | } [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 121 ~ if let Part::Reasoning { encrypted, .. } = part [INFO] [stdout] 122 ~ && encrypted.is_some() { [INFO] [stdout] 123 | state.encrypted_parts.insert(*part_index); [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / if let Some(sum) = summary { [INFO] [stdout] 95 | | if !sum.is_empty() { [INFO] [stdout] 96 | | return Some(sum.clone()); [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 94 ~ if let Some(sum) = summary [INFO] [stdout] 95 ~ && !sum.is_empty() { [INFO] [stdout] 96 | return Some(sum.clone()); [INFO] [stdout] 97 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `match` [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | / if let PartDelta::Reasoning { [INFO] [stdout] 131 | | encrypted, summary, .. [INFO] [stdout] 132 | | } = delta [INFO] [stdout] ... | [INFO] [stdout] 140 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | delta, extra_body, .. [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 129 | } => { [INFO] [stdout] 130 | if let PartDelta::Reasoning { [INFO] [stdout] | ____________________^ [INFO] [stdout] 131 | | encrypted, summary, .. [INFO] [stdout] 132 | | } = delta [INFO] [stdout] | |_____________^ with this pattern, prefixed by `delta: ` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | / if let PartDelta::Reasoning { [INFO] [stdout] 131 | | encrypted, summary, .. [INFO] [stdout] 132 | | } = delta [INFO] [stdout] ... | [INFO] [stdout] 140 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 132 ~ } = delta [INFO] [stdout] 133 ~ && let Some(value) = extract_reasoning_content(encrypted, summary) { [INFO] [stdout] 134 | extra_body.insert( [INFO] [stdout] ... [INFO] [stdout] 137 | ); [INFO] [stdout] 138 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/mod.rs:43:81 [INFO] [stdout] | [INFO] [stdout] 43 | fn ensure_model_allowed(auth: &crate::auth::AuthResult, logical_model: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("inject_reasoning_content").is_none()` [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:307:24 [INFO] [stdout] | [INFO] [stdout] 307 | extra_body.get("inject_reasoning_content").is_none(), [INFO] [stdout] | -----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!extra_body.contains_key("inject_reasoning_content")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/handlers/mod.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | / if let Some(remaining) = auth.quota_remaining { [INFO] [stdout] 630 | | if remaining <= 0 { [INFO] [stdout] 631 | | return Err(AppError::new( [INFO] [stdout] 632 | | StatusCode::TOO_MANY_REQUESTS, [INFO] [stdout] ... | [INFO] [stdout] 637 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 629 ~ if let Some(remaining) = auth.quota_remaining [INFO] [stdout] 630 ~ && remaining <= 0 { [INFO] [stdout] 631 | return Err(AppError::new( [INFO] [stdout] ... [INFO] [stdout] 635 | )); [INFO] [stdout] 636 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/mod.rs:644:6 [INFO] [stdout] | [INFO] [stdout] 644 | ) -> AppResult<(Value, Map)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/handlers/mod.rs:675:67 [INFO] [stdout] | [INFO] [stdout] 675 | fn parse_urp_request(known: &Value, extra: Map) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/transforms/think_xml_to_reasoning.rs:88:73 [INFO] [stdout] | [INFO] [stdout] 88 | ... let parsed = extract_text_and_reasoning(&content, &cfg.tag); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/think_xml_to_reasoning.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | / if let PartDelta::Text { content } = delta { [INFO] [stdout] 189 | | if content.contains(&open) || *in_reasoning { [INFO] [stdout] 190 | | let mut s = content.clone(); [INFO] [stdout] 191 | | if let Some(pos) = s.find(&open) { [INFO] [stdout] ... | [INFO] [stdout] 206 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 188 ~ if let PartDelta::Text { content } = delta [INFO] [stdout] 189 ~ && (content.contains(&open) || *in_reasoning) { [INFO] [stdout] 190 | let mut s = content.clone(); [INFO] [stdout] ... [INFO] [stdout] 204 | }; [INFO] [stdout] 205 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_system.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / if let Item::Message { parts, .. } = &mut req.inputs[idx] { [INFO] [stdout] 104 | | if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 105 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ if let Item::Message { parts, .. } = &mut req.inputs[idx] [INFO] [stdout] 104 ~ && let Some(last_part) = parts.last_mut() { [INFO] [stdout] 105 | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 107 | } [INFO] [stdout] 108 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_system.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | / if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 105 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 107 | | } [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 104 ~ if let Some(last_part) = parts.last_mut() [INFO] [stdout] 105 ~ && let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_tool_use.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | / if let Item::Message { role, parts, .. } = item { [INFO] [stdout] 90 | | if *role == Role::Assistant [INFO] [stdout] 91 | | && parts.iter().any(|p| matches!(p, Part::ToolCall { .. })) [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 89 ~ if let Item::Message { role, parts, .. } = item [INFO] [stdout] 90 ~ && *role == Role::Assistant [INFO] [stdout] 91 | && parts.iter().any(|p| matches!(p, Part::ToolCall { .. })) [INFO] [stdout] ... [INFO] [stdout] 94 | break; [INFO] [stdout] 95 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_tool_use.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | / if let Item::Message { parts, .. } = &mut req.inputs[user_idx] { [INFO] [stdout] 131 | | if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 132 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] ... | [INFO] [stdout] 136 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ if let Item::Message { parts, .. } = &mut req.inputs[user_idx] [INFO] [stdout] 131 ~ && let Some(last_part) = parts.last_mut() { [INFO] [stdout] 132 | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 134 | } [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_tool_use.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | / if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 132 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 134 | | } [INFO] [stdout] 135 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 131 ~ if let Some(last_part) = parts.last_mut() [INFO] [stdout] 132 ~ && let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/transforms/compress_user_message_images.rs:155:77 [INFO] [stdout] | [INFO] [stdout] 155 | let Some((media_type, data)) = split_image_data_url(&url) else { [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:942:5 [INFO] [stdout] | [INFO] [stdout] 942 | / if let Some((prefix, _)) = segment.split_once("--") { [INFO] [stdout] 943 | | if is_known_provider_prefix(prefix) { [INFO] [stdout] 944 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | | segment = rest.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 948 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 942 ~ if let Some((prefix, _)) = segment.split_once("--") [INFO] [stdout] 943 ~ && is_known_provider_prefix(prefix) { [INFO] [stdout] 944 | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | segment = rest.to_string(); [INFO] [stdout] 946 | } [INFO] [stdout] 947 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | / if is_known_provider_prefix(prefix) { [INFO] [stdout] 944 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | | segment = rest.to_string(); [INFO] [stdout] 946 | | } [INFO] [stdout] 947 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 943 ~ if is_known_provider_prefix(prefix) [INFO] [stdout] 944 ~ && let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 945 | segment = rest.to_string(); [INFO] [stdout] 946 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:950:5 [INFO] [stdout] | [INFO] [stdout] 950 | / if let Some((prefix, _)) = segment.split_once('.') { [INFO] [stdout] 951 | | if is_known_provider_prefix(prefix) { [INFO] [stdout] 952 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | | segment = rest.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 956 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 950 ~ if let Some((prefix, _)) = segment.split_once('.') [INFO] [stdout] 951 ~ && is_known_provider_prefix(prefix) { [INFO] [stdout] 952 | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | segment = rest.to_string(); [INFO] [stdout] 954 | } [INFO] [stdout] 955 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/model_registry_store.rs:951:9 [INFO] [stdout] | [INFO] [stdout] 951 | / if is_known_provider_prefix(prefix) { [INFO] [stdout] 952 | | if let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | | segment = rest.to_string(); [INFO] [stdout] 954 | | } [INFO] [stdout] 955 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 951 ~ if is_known_provider_prefix(prefix) [INFO] [stdout] 952 ~ && let Some(rest) = strip_provider_prefix_once(&segment, prefix) { [INFO] [stdout] 953 | segment = rest.to_string(); [INFO] [stdout] 954 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | / if let Some(patterns) = &rule.models { [INFO] [stdout] 237 | | if !patterns [INFO] [stdout] 238 | | .iter() [INFO] [stdout] 239 | | .any(|pattern| model_glob_match(pattern, current_model)) [INFO] [stdout] ... | [INFO] [stdout] 243 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 236 ~ if let Some(patterns) = &rule.models [INFO] [stdout] 237 ~ && !patterns [INFO] [stdout] 238 | .iter() [INFO] [stdout] ... [INFO] [stdout] 241 | continue; [INFO] [stdout] 242 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | / if let Item::Message { role, .. } = item { [INFO] [stdout] 283 | | if *role == Role::System { [INFO] [stdout] 284 | | *role = Role::Developer; [INFO] [stdout] 285 | | } [INFO] [stdout] 286 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 282 ~ if let Item::Message { role, .. } = item [INFO] [stdout] 283 ~ && *role == Role::System { [INFO] [stdout] 284 | *role = Role::Developer; [INFO] [stdout] 285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | / if let Item::Message { [INFO] [stdout] 294 | | role, [INFO] [stdout] 295 | | parts, [INFO] [stdout] 296 | | extra_body, [INFO] [stdout] ... | [INFO] [stdout] 315 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 297 ~ } = item [INFO] [stdout] 298 ~ && let Some(Item::Message { [INFO] [stdout] 299 | role: last_role, [INFO] [stdout] ... [INFO] [stdout] 312 | } [INFO] [stdout] 313 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | / if let Some(Item::Message { [INFO] [stdout] 300 | | role: last_role, [INFO] [stdout] 301 | | parts: last_parts, [INFO] [stdout] 302 | | extra_body: last_extra, [INFO] [stdout] ... | [INFO] [stdout] 314 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 303 ~ }) = merged.last_mut() [INFO] [stdout] 304 ~ && last_role == role { [INFO] [stdout] 305 | last_parts.extend(parts.clone()); [INFO] [stdout] ... [INFO] [stdout] 311 | continue; [INFO] [stdout] 312 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/upstream.rs:212:6 [INFO] [stdout] | [INFO] [stdout] 212 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/anthropic.rs:225:25 [INFO] [stdout] | [INFO] [stdout] 225 | / if let Some(signature) = bobj.get("signature").and_then(|v| v.as_str()) { [INFO] [stdout] 226 | | if !signature.is_empty() { [INFO] [stdout] 227 | | parts.push(Part::Reasoning { [INFO] [stdout] 228 | | content: None, [INFO] [stdout] ... | [INFO] [stdout] 235 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 225 ~ if let Some(signature) = bobj.get("signature").and_then(|v| v.as_str()) [INFO] [stdout] 226 ~ && !signature.is_empty() { [INFO] [stdout] 227 | parts.push(Part::Reasoning { [INFO] [stdout] ... [INFO] [stdout] 233 | }); [INFO] [stdout] 234 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/gemini.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | / if let Some(gen_cfg) = obj.get("generationConfig").and_then(|v| v.as_object()) { [INFO] [stdout] 180 | | if let Some(thinking) = gen_cfg.get("thinkingConfig").and_then(|v| v.as_object()) { [INFO] [stdout] 181 | | let budget = thinking [INFO] [stdout] 182 | | .get("thinkingBudget") [INFO] [stdout] ... | [INFO] [stdout] 202 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 179 ~ if let Some(gen_cfg) = obj.get("generationConfig").and_then(|v| v.as_object()) [INFO] [stdout] 180 ~ && let Some(thinking) = gen_cfg.get("thinkingConfig").and_then(|v| v.as_object()) { [INFO] [stdout] 181 | let budget = thinking [INFO] [stdout] ... [INFO] [stdout] 200 | }); [INFO] [stdout] 201 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/gemini.rs:455:5 [INFO] [stdout] | [INFO] [stdout] 455 | / if let Some(text) = obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 456 | | if !text.is_empty() { [INFO] [stdout] 457 | | if obj.get("thought").and_then(|v| v.as_bool()) == Some(true) { [INFO] [stdout] 458 | | out.push(Part::Reasoning { [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 455 ~ if let Some(text) = obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 456 ~ && !text.is_empty() { [INFO] [stdout] 457 | if obj.get("thought").and_then(|v| v.as_bool()) == Some(true) { [INFO] [stdout] ... [INFO] [stdout] 470 | } [INFO] [stdout] 471 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/gemini.rs:660:5 [INFO] [stdout] | [INFO] [stdout] 660 | / if let Some(obj) = value.as_object() { [INFO] [stdout] 661 | | if let Some(parts) = obj.get("parts").and_then(|v| v.as_array()) { [INFO] [stdout] 662 | | for part in parts { [INFO] [stdout] 663 | | if let Some(text) = part.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] ... | [INFO] [stdout] 668 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 660 ~ if let Some(obj) = value.as_object() [INFO] [stdout] 661 ~ && let Some(parts) = obj.get("parts").and_then(|v| v.as_array()) { [INFO] [stdout] 662 | for part in parts { [INFO] [stdout] ... [INFO] [stdout] 666 | } [INFO] [stdout] 667 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | / if let Some(until) = self.cooldown_until { [INFO] [stdout] 262 | | if now_ts < until { [INFO] [stdout] 263 | | return "unhealthy"; [INFO] [stdout] 264 | | } [INFO] [stdout] 265 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(until) = self.cooldown_until [INFO] [stdout] 262 ~ && now_ts < until { [INFO] [stdout] 263 | return "unhealthy"; [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:372:9 [INFO] [stdout] | [INFO] [stdout] 372 | / if let Some(v) = input.active_probe_interval_seconds_override { [INFO] [stdout] 373 | | if v == 0 { [INFO] [stdout] 374 | | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 375 | | } [INFO] [stdout] 376 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 372 ~ if let Some(v) = input.active_probe_interval_seconds_override [INFO] [stdout] 373 ~ && v == 0 { [INFO] [stdout] 374 | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 375 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:377:9 [INFO] [stdout] | [INFO] [stdout] 377 | / if let Some(v) = input.active_probe_success_threshold_override { [INFO] [stdout] 378 | | if v == 0 { [INFO] [stdout] 379 | | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 380 | | } [INFO] [stdout] 381 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 377 ~ if let Some(v) = input.active_probe_success_threshold_override [INFO] [stdout] 378 ~ && v == 0 { [INFO] [stdout] 379 | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 380 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:382:9 [INFO] [stdout] | [INFO] [stdout] 382 | / if let Some(v) = input.request_timeout_ms_override { [INFO] [stdout] 383 | | if v == 0 { [INFO] [stdout] 384 | | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 385 | | } [INFO] [stdout] 386 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 382 ~ if let Some(v) = input.request_timeout_ms_override [INFO] [stdout] 383 ~ && v == 0 { [INFO] [stdout] 384 | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 385 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | / if let Some(Some(v)) = input.active_probe_interval_seconds_override { [INFO] [stdout] 471 | | if v == 0 { [INFO] [stdout] 472 | | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 473 | | } [INFO] [stdout] 474 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 470 ~ if let Some(Some(v)) = input.active_probe_interval_seconds_override [INFO] [stdout] 471 ~ && v == 0 { [INFO] [stdout] 472 | return Err("active_probe_interval_seconds_override must be >= 1".to_string()); [INFO] [stdout] 473 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:475:9 [INFO] [stdout] | [INFO] [stdout] 475 | / if let Some(Some(v)) = input.active_probe_success_threshold_override { [INFO] [stdout] 476 | | if v == 0 { [INFO] [stdout] 477 | | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 478 | | } [INFO] [stdout] 479 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 475 ~ if let Some(Some(v)) = input.active_probe_success_threshold_override [INFO] [stdout] 476 ~ && v == 0 { [INFO] [stdout] 477 | return Err("active_probe_success_threshold_override must be >= 1".to_string()); [INFO] [stdout] 478 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | / if let Some(Some(v)) = input.request_timeout_ms_override { [INFO] [stdout] 481 | | if v == 0 { [INFO] [stdout] 482 | | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 483 | | } [INFO] [stdout] 484 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 480 ~ if let Some(Some(v)) = input.request_timeout_ms_override [INFO] [stdout] 481 ~ && v == 0 { [INFO] [stdout] 482 | return Err("request_timeout_ms_override must be >= 1".to_string()); [INFO] [stdout] 483 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:246:25 [INFO] [stdout] | [INFO] [stdout] 246 | / if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 247 | | if !text.is_empty() { [INFO] [stdout] 248 | | parts.push(text_part_with_phase( [INFO] [stdout] 249 | | text, [INFO] [stdout] ... | [INFO] [stdout] 254 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 246 ~ if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 247 ~ && !text.is_empty() { [INFO] [stdout] 248 | parts.push(text_part_with_phase( [INFO] [stdout] ... [INFO] [stdout] 252 | )); [INFO] [stdout] 253 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | / if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) { [INFO] [stdout] 267 | | if !refusal.is_empty() { [INFO] [stdout] 268 | | parts.push(Part::Refusal { [INFO] [stdout] 269 | | content: refusal.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 273 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 266 ~ if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) [INFO] [stdout] 267 ~ && !refusal.is_empty() { [INFO] [stdout] 268 | parts.push(Part::Refusal { [INFO] [stdout] ... [INFO] [stdout] 271 | }); [INFO] [stdout] 272 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:409:21 [INFO] [stdout] | [INFO] [stdout] 409 | / if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 410 | | if !text.is_empty() { [INFO] [stdout] 411 | | parts.push(text_part_with_phase( [INFO] [stdout] 412 | | text, [INFO] [stdout] ... | [INFO] [stdout] 417 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 409 ~ if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 410 ~ && !text.is_empty() { [INFO] [stdout] 411 | parts.push(text_part_with_phase( [INFO] [stdout] ... [INFO] [stdout] 415 | )); [INFO] [stdout] 416 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:468:5 [INFO] [stdout] | [INFO] [stdout] 468 | / if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) { [INFO] [stdout] 469 | | if !refusal.is_empty() { [INFO] [stdout] 470 | | parts.push(Part::Refusal { [INFO] [stdout] 471 | | content: refusal.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 475 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 468 ~ if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) [INFO] [stdout] 469 ~ && !refusal.is_empty() { [INFO] [stdout] 470 | parts.push(Part::Refusal { [INFO] [stdout] ... [INFO] [stdout] 473 | }); [INFO] [stdout] 474 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:613:21 [INFO] [stdout] | [INFO] [stdout] 613 | / if let Some(text) = detail_obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 614 | | if !text.is_empty() { [INFO] [stdout] 615 | | merge_reasoning_part( [INFO] [stdout] 616 | | parts, [INFO] [stdout] ... | [INFO] [stdout] 624 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 613 ~ if let Some(text) = detail_obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 614 ~ && !text.is_empty() { [INFO] [stdout] 615 | merge_reasoning_part( [INFO] [stdout] ... [INFO] [stdout] 622 | saw_plain = true; [INFO] [stdout] 623 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:632:21 [INFO] [stdout] | [INFO] [stdout] 632 | / if let Some(data) = detail_obj.get("data") { [INFO] [stdout] 633 | | if !matches!(data, Value::Null) { [INFO] [stdout] 634 | | if let Some(s) = data.as_str() { [INFO] [stdout] 635 | | if s.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 642 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 632 ~ if let Some(data) = detail_obj.get("data") [INFO] [stdout] 633 ~ && !matches!(data, Value::Null) { [INFO] [stdout] 634 | if let Some(s) = data.as_str() { [INFO] [stdout] ... [INFO] [stdout] 640 | saw_encrypted = true; [INFO] [stdout] 641 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:634:29 [INFO] [stdout] | [INFO] [stdout] 634 | / ... if let Some(s) = data.as_str() { [INFO] [stdout] 635 | | ... if s.is_empty() { [INFO] [stdout] 636 | | ... continue; [INFO] [stdout] 637 | | ... } [INFO] [stdout] 638 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 634 ~ if let Some(s) = data.as_str() [INFO] [stdout] 635 ~ && s.is_empty() { [INFO] [stdout] 636 | continue; [INFO] [stdout] 637 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:650:21 [INFO] [stdout] | [INFO] [stdout] 650 | / if let Some(summary) = detail_obj.get("summary").and_then(|v| v.as_str()) { [INFO] [stdout] 651 | | if !summary.is_empty() { [INFO] [stdout] 652 | | merge_reasoning_part( [INFO] [stdout] 653 | | parts, [INFO] [stdout] ... | [INFO] [stdout] 661 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 650 ~ if let Some(summary) = detail_obj.get("summary").and_then(|v| v.as_str()) [INFO] [stdout] 651 ~ && !summary.is_empty() { [INFO] [stdout] 652 | merge_reasoning_part( [INFO] [stdout] ... [INFO] [stdout] 659 | saw_plain = true; [INFO] [stdout] 660 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:668:5 [INFO] [stdout] | [INFO] [stdout] 668 | / if !saw_plain { [INFO] [stdout] 669 | | if let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 670 | | if !reasoning.is_empty() { [INFO] [stdout] 671 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] ... | [INFO] [stdout] 675 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 668 ~ if !saw_plain [INFO] [stdout] 669 ~ && let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 670 | if !reasoning.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 673 | } [INFO] [stdout] 674 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:669:9 [INFO] [stdout] | [INFO] [stdout] 669 | / if let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 670 | | if !reasoning.is_empty() { [INFO] [stdout] 671 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 672 | | saw_plain = true; [INFO] [stdout] 673 | | } [INFO] [stdout] 674 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 669 ~ if let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) [INFO] [stdout] 670 ~ && !reasoning.is_empty() { [INFO] [stdout] 671 | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 672 | saw_plain = true; [INFO] [stdout] 673 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:677:5 [INFO] [stdout] | [INFO] [stdout] 677 | / if !saw_plain { [INFO] [stdout] 678 | | if let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 679 | | if !reasoning.is_empty() { [INFO] [stdout] 680 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] ... | [INFO] [stdout] 683 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 677 ~ if !saw_plain [INFO] [stdout] 678 ~ && let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 679 | if !reasoning.is_empty() { [INFO] [stdout] 680 | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 681 | } [INFO] [stdout] 682 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:678:9 [INFO] [stdout] | [INFO] [stdout] 678 | / if let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 679 | | if !reasoning.is_empty() { [INFO] [stdout] 680 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 681 | | } [INFO] [stdout] 682 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 678 ~ if let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) [INFO] [stdout] 679 ~ && !reasoning.is_empty() { [INFO] [stdout] 680 | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 681 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:685:5 [INFO] [stdout] | [INFO] [stdout] 685 | / if !saw_encrypted { [INFO] [stdout] 686 | | if let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 687 | | if !opaque.is_empty() { [INFO] [stdout] 688 | | merge_reasoning_part( [INFO] [stdout] ... | [INFO] [stdout] 697 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 685 ~ if !saw_encrypted [INFO] [stdout] 686 ~ && let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 687 | if !opaque.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 695 | } [INFO] [stdout] 696 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:686:9 [INFO] [stdout] | [INFO] [stdout] 686 | / if let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 687 | | if !opaque.is_empty() { [INFO] [stdout] 688 | | merge_reasoning_part( [INFO] [stdout] 689 | | parts, [INFO] [stdout] ... | [INFO] [stdout] 696 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 686 ~ if let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) [INFO] [stdout] 687 ~ && !opaque.is_empty() { [INFO] [stdout] 688 | merge_reasoning_part( [INFO] [stdout] ... [INFO] [stdout] 694 | ); [INFO] [stdout] 695 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1029:9 [INFO] [stdout] | [INFO] [stdout] 1029 | / if let Some(v) = c.passive_failure_threshold_override { [INFO] [stdout] 1030 | | if v < 1 { [INFO] [stdout] 1031 | | return Err("channel passive_failure_threshold_override must be >= 1".to_string()); [INFO] [stdout] 1032 | | } [INFO] [stdout] 1033 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1029 ~ if let Some(v) = c.passive_failure_threshold_override [INFO] [stdout] 1030 ~ && v < 1 { [INFO] [stdout] 1031 | return Err("channel passive_failure_threshold_override must be >= 1".to_string()); [INFO] [stdout] 1032 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1034:9 [INFO] [stdout] | [INFO] [stdout] 1034 | / if let Some(v) = c.passive_cooldown_seconds_override { [INFO] [stdout] 1035 | | if v < 1 { [INFO] [stdout] 1036 | | return Err("channel passive_cooldown_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1037 | | } [INFO] [stdout] 1038 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1034 ~ if let Some(v) = c.passive_cooldown_seconds_override [INFO] [stdout] 1035 ~ && v < 1 { [INFO] [stdout] 1036 | return Err("channel passive_cooldown_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1037 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1039:9 [INFO] [stdout] | [INFO] [stdout] 1039 | / if let Some(v) = c.passive_window_seconds_override { [INFO] [stdout] 1040 | | if v < 1 { [INFO] [stdout] 1041 | | return Err("channel passive_window_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1042 | | } [INFO] [stdout] 1043 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1039 ~ if let Some(v) = c.passive_window_seconds_override [INFO] [stdout] 1040 ~ && v < 1 { [INFO] [stdout] 1041 | return Err("channel passive_window_seconds_override must be >= 1".to_string()); [INFO] [stdout] 1042 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1044:9 [INFO] [stdout] | [INFO] [stdout] 1044 | / if let Some(v) = c.passive_min_samples_override { [INFO] [stdout] 1045 | | if v < 1 { [INFO] [stdout] 1046 | | return Err("channel passive_min_samples_override must be >= 1".to_string()); [INFO] [stdout] 1047 | | } [INFO] [stdout] 1048 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1044 ~ if let Some(v) = c.passive_min_samples_override [INFO] [stdout] 1045 ~ && v < 1 { [INFO] [stdout] 1046 | return Err("channel passive_min_samples_override must be >= 1".to_string()); [INFO] [stdout] 1047 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1049:9 [INFO] [stdout] | [INFO] [stdout] 1049 | / if let Some(v) = c.passive_failure_rate_threshold_override { [INFO] [stdout] 1050 | | if !(v.is_finite() && (0.01..=1.0).contains(&v)) { [INFO] [stdout] 1051 | | return Err( [INFO] [stdout] 1052 | | "channel passive_failure_rate_threshold_override must be in [0.01, 1.0]" [INFO] [stdout] ... | [INFO] [stdout] 1056 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1049 ~ if let Some(v) = c.passive_failure_rate_threshold_override [INFO] [stdout] 1050 ~ && !(v.is_finite() && (0.01..=1.0).contains(&v)) { [INFO] [stdout] 1051 | return Err( [INFO] [stdout] ... [INFO] [stdout] 1054 | ); [INFO] [stdout] 1055 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1057:9 [INFO] [stdout] | [INFO] [stdout] 1057 | / if let Some(v) = c.passive_rate_limit_cooldown_seconds_override { [INFO] [stdout] 1058 | | if v < 1 { [INFO] [stdout] 1059 | | return Err( [INFO] [stdout] 1060 | | "channel passive_rate_limit_cooldown_seconds_override must be >= 1".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 1063 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1057 ~ if let Some(v) = c.passive_rate_limit_cooldown_seconds_override [INFO] [stdout] 1058 ~ && v < 1 { [INFO] [stdout] 1059 | return Err( [INFO] [stdout] 1060 | "channel passive_rate_limit_cooldown_seconds_override must be >= 1".to_string(), [INFO] [stdout] 1061 | ); [INFO] [stdout] 1062 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/monoize_routing.rs:1064:9 [INFO] [stdout] | [INFO] [stdout] 1064 | / if let Some(id) = &c.id { [INFO] [stdout] 1065 | | if !ids.insert(id.clone()) { [INFO] [stdout] 1066 | | return Err("duplicate channel id".to_string()); [INFO] [stdout] 1067 | | } [INFO] [stdout] 1068 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1064 ~ if let Some(id) = &c.id [INFO] [stdout] 1065 ~ && !ids.insert(id.clone()) { [INFO] [stdout] 1066 | return Err("duplicate channel id".to_string()); [INFO] [stdout] 1067 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/urp/decode/openai_responses.rs:855:1 [INFO] [stdout] | [INFO] [stdout] 855 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 904 | fn tool_choice_from_value(v: Value) -> ToolChoice { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 912 | fn parse_response_format(v: Value) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_responses.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | / if let Some(instructions) = obj.get("instructions").and_then(|v| v.as_str()) { [INFO] [stdout] 213 | | if !instructions.is_empty() { [INFO] [stdout] 214 | | inputs.push(Item::text(Role::Developer, instructions)); [INFO] [stdout] 215 | | } [INFO] [stdout] 216 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 212 ~ if let Some(instructions) = obj.get("instructions").and_then(|v| v.as_str()) [INFO] [stdout] 213 ~ && !instructions.is_empty() { [INFO] [stdout] 214 | inputs.push(Item::text(Role::Developer, instructions)); [INFO] [stdout] 215 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/urp/decode/openai_responses.rs:713:25 [INFO] [stdout] | [INFO] [stdout] 713 | / item_obj [INFO] [stdout] 714 | | .get("encrypted_content") [INFO] [stdout] 715 | | .and_then(|value| match value { [INFO] [stdout] 716 | | Value::String(text) => Some(Value::String(text.clone())), [INFO] [stdout] 717 | | _ => Some(value.clone()), [INFO] [stdout] 718 | | }); [INFO] [stdout] | |______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 715 ~ .map(|value| match value { [INFO] [stdout] 716 ~ Value::String(text) => Value::String(text.clone()), [INFO] [stdout] 717 ~ _ => value.clone(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Option` [INFO] [stdout] --> src/urp/decode/openai_responses.rs:722:26 [INFO] [stdout] | [INFO] [stdout] 722 | .map(|_| summary_to_text(item_obj)) [INFO] [stdout] | __________________________^ [INFO] [stdout] 723 | | .flatten(); [INFO] [stdout] | |__________________________________^ help: try replacing `map` with `and_then` and remove the `.flatten()`: `and_then(|_| summary_to_text(item_obj))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_responses.rs:828:13 [INFO] [stdout] | [INFO] [stdout] 828 | / if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") { [INFO] [stdout] 829 | | if let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 830 | | out.push_str(t); [INFO] [stdout] 831 | | } [INFO] [stdout] 832 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 828 ~ if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") [INFO] [stdout] 829 ~ && let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 830 | out.push_str(t); [INFO] [stdout] 831 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/mod.rs:291:13 [INFO] [stdout] | [INFO] [stdout] 291 | / if let Some(obj) = item.as_object() { [INFO] [stdout] 292 | | if let Some(text) = obj.get("text").and_then(|x| x.as_str()) { [INFO] [stdout] 293 | | out.push_str(text); [INFO] [stdout] 294 | | } [INFO] [stdout] 295 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 291 ~ if let Some(obj) = item.as_object() [INFO] [stdout] 292 ~ && let Some(text) = obj.get("text").and_then(|x| x.as_str()) { [INFO] [stdout] 293 | out.push_str(text); [INFO] [stdout] 294 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | / if let Part::Text { [INFO] [stdout] 25 | | content: text, [INFO] [stdout] 26 | | extra_body, [INFO] [stdout] 27 | | .. [INFO] [stdout] ... | [INFO] [stdout] 45 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 28 ~ } = part [INFO] [stdout] 29 ~ && !text.is_empty() { [INFO] [stdout] 30 | let mut block = json!({ "type": "text", "text": text }); [INFO] [stdout] ... [INFO] [stdout] 42 | system_blocks.push(block); [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / if let Some(reasoning) = &req.reasoning { [INFO] [stdout] 92 | | if let Some(effort) = &reasoning.effort { [INFO] [stdout] 93 | | if model_supports_adaptive(upstream_model) { [INFO] [stdout] 94 | | obj.insert("thinking".to_string(), json!({ "type": "adaptive" })); [INFO] [stdout] ... | [INFO] [stdout] 106 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 91 ~ if let Some(reasoning) = &req.reasoning [INFO] [stdout] 92 ~ && let Some(effort) = &reasoning.effort { [INFO] [stdout] 93 | if model_supports_adaptive(upstream_model) { [INFO] [stdout] ... [INFO] [stdout] 104 | } [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | / if !has_reasoning_part { [INFO] [stdout] 259 | | if let Some(enc) = &encrypted { [INFO] [stdout] 260 | | let block = json!({ "type": "thinking", "thinking": "", "signature": enc }); [INFO] [stdout] 261 | | content.insert(0, block); [INFO] [stdout] 262 | | } [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 258 ~ if !has_reasoning_part [INFO] [stdout] 259 ~ && let Some(enc) = &encrypted { [INFO] [stdout] 260 | let block = json!({ "type": "thinking", "thinking": "", "signature": enc }); [INFO] [stdout] 261 | content.insert(0, block); [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:284:5 [INFO] [stdout] | [INFO] [stdout] 284 | / if let Some(usage) = &resp.usage { [INFO] [stdout] 285 | | if let Some(obj) = usage_value.as_object_mut() { [INFO] [stdout] 286 | | let input_details = usage_input_details(usage); [INFO] [stdout] 287 | | let output_details = usage_output_details(usage); [INFO] [stdout] ... | [INFO] [stdout] 321 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 284 ~ if let Some(usage) = &resp.usage [INFO] [stdout] 285 ~ && let Some(obj) = usage_value.as_object_mut() { [INFO] [stdout] 286 | let input_details = usage_input_details(usage); [INFO] [stdout] ... [INFO] [stdout] 319 | } [INFO] [stdout] 320 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:580:13 [INFO] [stdout] | [INFO] [stdout] 580 | / if let Ok(major) = major_str.parse::() { [INFO] [stdout] 581 | | if major >= 5 { [INFO] [stdout] 582 | | return true; [INFO] [stdout] 583 | | } [INFO] [stdout] 584 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 580 ~ if let Ok(major) = major_str.parse::() [INFO] [stdout] 581 ~ && major >= 5 { [INFO] [stdout] 582 | return true; [INFO] [stdout] 583 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("tool_prompt_input_tokens") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/anthropic.rs:732:14 [INFO] [stdout] | [INFO] [stdout] 732 | .get("tool_prompt_input_tokens") [INFO] [stdout] | ______________^ [INFO] [stdout] 733 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 730 ~ assert!(!decoded_usage [INFO] [stdout] 731 ~ .extra_body.contains_key("tool_prompt_input_tokens")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("reasoning_output_tokens") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/anthropic.rs:736:14 [INFO] [stdout] | [INFO] [stdout] 736 | .get("reasoning_output_tokens") [INFO] [stdout] | ______________^ [INFO] [stdout] 737 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 734 ~ assert!(!decoded_usage [INFO] [stdout] 735 ~ .extra_body.contains_key("reasoning_output_tokens")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/gemini.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / if let Some(reasoning) = &req.reasoning { [INFO] [stdout] 102 | | if let Some(effort) = &reasoning.effort { [INFO] [stdout] 103 | | generation_config.insert( [INFO] [stdout] 104 | | "thinkingConfig".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 101 ~ if let Some(reasoning) = &req.reasoning [INFO] [stdout] 102 ~ && let Some(effort) = &reasoning.effort { [INFO] [stdout] 103 | generation_config.insert( [INFO] [stdout] ... [INFO] [stdout] 106 | ); [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/gemini.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | / if let Some(tc) = &req.tool_choice { [INFO] [stdout] 127 | | if let Some(cfg) = encode_tool_choice(tc) { [INFO] [stdout] 128 | | obj.insert( [INFO] [stdout] 129 | | "toolConfig".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 126 ~ if let Some(tc) = &req.tool_choice [INFO] [stdout] 127 ~ && let Some(cfg) = encode_tool_choice(tc) { [INFO] [stdout] 128 | obj.insert( [INFO] [stdout] ... [INFO] [stdout] 131 | ); [INFO] [stdout] 132 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:175:70 [INFO] [stdout] | [INFO] [stdout] 175 | ... let args = serde_json::from_str::(&arguments) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `arguments` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:185:84 [INFO] [stdout] | [INFO] [stdout] 185 | Part::Image { source, .. } => parts.push(encode_image_part(&source)), [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:186:82 [INFO] [stdout] | [INFO] [stdout] 186 | Part::File { source, .. } => parts.push(encode_file_part(&source)), [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:187:84 [INFO] [stdout] | [INFO] [stdout] 187 | Part::Audio { source, .. } => parts.push(encode_audio_part(&source)), [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/gemini.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | / if let Some(usage) = &resp.usage { [INFO] [stdout] 209 | | if let Some(obj) = usage_metadata.as_object_mut() { [INFO] [stdout] 210 | | let input_details = usage_input_details(usage); [INFO] [stdout] 211 | | let output_details = usage_output_details(usage); [INFO] [stdout] ... | [INFO] [stdout] 252 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 208 ~ if let Some(usage) = &resp.usage [INFO] [stdout] 209 ~ && let Some(obj) = usage_metadata.as_object_mut() { [INFO] [stdout] 210 | let input_details = usage_input_details(usage); [INFO] [stdout] ... [INFO] [stdout] 250 | } [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("cachedContentTokenCount") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/gemini.rs:494:14 [INFO] [stdout] | [INFO] [stdout] 494 | .get("cachedContentTokenCount") [INFO] [stdout] | ______________^ [INFO] [stdout] 495 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 492 ~ assert!(!decoded_usage [INFO] [stdout] 493 ~ .extra_body.contains_key("cachedContentTokenCount")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("thoughtsTokenCount").is_none()` [INFO] [stdout] --> src/urp/encode/gemini.rs:496:42 [INFO] [stdout] | [INFO] [stdout] 496 | assert!(decoded_usage.extra_body.get("thoughtsTokenCount").is_none()); [INFO] [stdout] | -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!decoded_usage.extra_body.contains_key("thoughtsTokenCount")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/providers.rs:538:9 [INFO] [stdout] | [INFO] [stdout] 538 | / if let Some(members) = &input.members { [INFO] [stdout] 539 | | if existing.provider_type == ProviderType::Group { [INFO] [stdout] 540 | | self.db [INFO] [stdout] 541 | | .write().await [INFO] [stdout] ... | [INFO] [stdout] 553 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 538 ~ if let Some(members) = &input.members [INFO] [stdout] 539 ~ && existing.provider_type == ProviderType::Group { [INFO] [stdout] 540 | self.db [INFO] [stdout] ... [INFO] [stdout] 551 | } [INFO] [stdout] 552 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_chat.rs:235:5 [INFO] [stdout] | [INFO] [stdout] 235 | / if let Some(reasoning) = &req.reasoning { [INFO] [stdout] 236 | | if let Some(effort) = &reasoning.effort { [INFO] [stdout] 237 | | obj.insert( [INFO] [stdout] 238 | | "reasoning_effort".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 242 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 235 ~ if let Some(reasoning) = &req.reasoning [INFO] [stdout] 236 ~ && let Some(effort) = &reasoning.effort { [INFO] [stdout] 237 | obj.insert( [INFO] [stdout] ... [INFO] [stdout] 240 | ); [INFO] [stdout] 241 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_chat.rs:502:9 [INFO] [stdout] | [INFO] [stdout] 502 | / if let Some(enc) = encrypted { [INFO] [stdout] 503 | | if !matches!(enc, Value::Null) { [INFO] [stdout] 504 | | if let Some(s) = enc.as_str() { [INFO] [stdout] 505 | | if s.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 515 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 502 ~ if let Some(enc) = encrypted [INFO] [stdout] 503 ~ && !matches!(enc, Value::Null) { [INFO] [stdout] 504 | if let Some(s) = enc.as_str() { [INFO] [stdout] ... [INFO] [stdout] 513 | } [INFO] [stdout] 514 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_chat.rs:504:17 [INFO] [stdout] | [INFO] [stdout] 504 | / if let Some(s) = enc.as_str() { [INFO] [stdout] 505 | | if s.is_empty() { [INFO] [stdout] 506 | | continue; [INFO] [stdout] 507 | | } [INFO] [stdout] 508 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 504 ~ if let Some(s) = enc.as_str() [INFO] [stdout] 505 ~ && s.is_empty() { [INFO] [stdout] 506 | continue; [INFO] [stdout] 507 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/encode/openai_chat.rs:618:13 [INFO] [stdout] | [INFO] [stdout] 618 | / if !text.is_empty() { [INFO] [stdout] 619 | | out.push(json!({ "type": "text", "text": text })); [INFO] [stdout] 620 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 617 ~ Value::String(text) [INFO] [stdout] 618 ~ if !text.is_empty() => { [INFO] [stdout] 619 | out.push(json!({ "type": "text", "text": text })); [INFO] [stdout] 620 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("prompt_tokens_details") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/openai_chat.rs:849:14 [INFO] [stdout] | [INFO] [stdout] 849 | .get("prompt_tokens_details") [INFO] [stdout] | ______________^ [INFO] [stdout] 850 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 847 ~ assert!(!decoded_usage [INFO] [stdout] 848 ~ .extra_body.contains_key("prompt_tokens_details")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("completion_tokens_details") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/openai_chat.rs:853:14 [INFO] [stdout] | [INFO] [stdout] 853 | .get("completion_tokens_details") [INFO] [stdout] | ______________^ [INFO] [stdout] 854 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 851 ~ assert!(!decoded_usage [INFO] [stdout] 852 ~ .extra_body.contains_key("completion_tokens_details")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_responses.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | / if !consumed_instructions && can_use_responses_instructions(item) { [INFO] [stdout] 221 | | if let Item::Message { parts, .. } = item { [INFO] [stdout] 222 | | let text = text_parts(parts); [INFO] [stdout] 223 | | if !text.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 229 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 220 ~ if !consumed_instructions && can_use_responses_instructions(item) [INFO] [stdout] 221 ~ && let Item::Message { parts, .. } = item { [INFO] [stdout] 222 | let text = text_parts(parts); [INFO] [stdout] ... [INFO] [stdout] 227 | } [INFO] [stdout] 228 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/append_empty_user_message.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | / if let Some(last) = messages.last() { [INFO] [stdout] 78 | | if matches!(last, Item::Message { role: Role::Assistant, .. }) { [INFO] [stdout] 79 | | messages.push(Item::text(Role::User, cfg.content.clone())); [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 77 ~ if let Some(last) = messages.last() [INFO] [stdout] 78 ~ && matches!(last, Item::Message { role: Role::Assistant, .. }) { [INFO] [stdout] 79 | messages.push(Item::text(Role::User, cfg.content.clone())); [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("input_tokens_details") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/openai_responses.rs:1020:14 [INFO] [stdout] | [INFO] [stdout] 1020 | .get("input_tokens_details") [INFO] [stdout] | ______________^ [INFO] [stdout] 1021 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 1018 ~ assert!(!decoded_usage [INFO] [stdout] 1019 ~ .extra_body.contains_key("input_tokens_details")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("output_tokens_details") [INFO] [stdout] .is_none()` [INFO] [stdout] --> src/urp/encode/openai_responses.rs:1024:14 [INFO] [stdout] | [INFO] [stdout] 1024 | .get("output_tokens_details") [INFO] [stdout] | ______________^ [INFO] [stdout] 1025 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 1022 ~ assert!(!decoded_usage [INFO] [stdout] 1023 ~ .extra_body.contains_key("output_tokens_details")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/plaintext_reasoning_to_summary.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | / if !state.encrypted_parts.contains(part_index) { [INFO] [stdout] 113 | | if let Some(text) = content.take().filter(|text| !text.is_empty()) { [INFO] [stdout] 114 | | *summary = Some(text); [INFO] [stdout] 115 | | } [INFO] [stdout] 116 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 112 ~ if !state.encrypted_parts.contains(part_index) [INFO] [stdout] 113 ~ && let Some(text) = content.take().filter(|text| !text.is_empty()) { [INFO] [stdout] 114 | *summary = Some(text); [INFO] [stdout] 115 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/plaintext_reasoning_to_summary.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | / if let Part::Reasoning { encrypted, .. } = part { [INFO] [stdout] 122 | | if encrypted.is_some() { [INFO] [stdout] 123 | | state.encrypted_parts.insert(*part_index); [INFO] [stdout] 124 | | } [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 121 ~ if let Part::Reasoning { encrypted, .. } = part [INFO] [stdout] 122 ~ && encrypted.is_some() { [INFO] [stdout] 123 | state.encrypted_parts.insert(*part_index); [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / if let Some(sum) = summary { [INFO] [stdout] 95 | | if !sum.is_empty() { [INFO] [stdout] 96 | | return Some(sum.clone()); [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 94 ~ if let Some(sum) = summary [INFO] [stdout] 95 ~ && !sum.is_empty() { [INFO] [stdout] 96 | return Some(sum.clone()); [INFO] [stdout] 97 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `match` [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | / if let PartDelta::Reasoning { [INFO] [stdout] 131 | | encrypted, summary, .. [INFO] [stdout] 132 | | } = delta [INFO] [stdout] ... | [INFO] [stdout] 140 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | delta, extra_body, .. [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 129 | } => { [INFO] [stdout] 130 | if let PartDelta::Reasoning { [INFO] [stdout] | ____________________^ [INFO] [stdout] 131 | | encrypted, summary, .. [INFO] [stdout] 132 | | } = delta [INFO] [stdout] | |_____________^ with this pattern, prefixed by `delta: ` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/reasoning_content_delta.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | / if let PartDelta::Reasoning { [INFO] [stdout] 131 | | encrypted, summary, .. [INFO] [stdout] 132 | | } = delta [INFO] [stdout] ... | [INFO] [stdout] 140 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 132 ~ } = delta [INFO] [stdout] 133 ~ && let Some(value) = extract_reasoning_content(encrypted, summary) { [INFO] [stdout] 134 | extra_body.insert( [INFO] [stdout] ... [INFO] [stdout] 137 | ); [INFO] [stdout] 138 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/gemini.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | / if current_reasoning_sig.len() > reasoning_sig.len() { [INFO] [stdout] 213 | | if !started_reasoning_part { [INFO] [stdout] 214 | | let _ = tx [INFO] [stdout] 215 | | .send(UrpStreamEvent::PartStart { [INFO] [stdout] ... | [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 212 ~ if current_reasoning_sig.len() > reasoning_sig.len() [INFO] [stdout] 213 ~ && !started_reasoning_part { [INFO] [stdout] 214 | let _ = tx [INFO] [stdout] ... [INFO] [stdout] 222 | started_reasoning_part = true; [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | / if let Some(t) = delta.get("content").and_then(|v| v.as_str()) { [INFO] [stdout] 115 | | if !t.is_empty() { [INFO] [stdout] 116 | | ensure_response_and_item_started( [INFO] [stdout] 117 | | &tx, [INFO] [stdout] ... | [INFO] [stdout] 146 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 114 ~ if let Some(t) = delta.get("content").and_then(|v| v.as_str()) [INFO] [stdout] 115 ~ && !t.is_empty() { [INFO] [stdout] 116 | ensure_response_and_item_started( [INFO] [stdout] ... [INFO] [stdout] 144 | .await?; [INFO] [stdout] 145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:279:17 [INFO] [stdout] | [INFO] [stdout] 279 | / if call_id.is_empty() { [INFO] [stdout] 280 | | if let Some(idx) = tc_index { [INFO] [stdout] 281 | | if let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | | call_id = existing.clone(); [INFO] [stdout] ... | [INFO] [stdout] 285 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 279 ~ if call_id.is_empty() [INFO] [stdout] 280 ~ && let Some(idx) = tc_index { [INFO] [stdout] 281 | if let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | call_id = existing.clone(); [INFO] [stdout] 283 | } [INFO] [stdout] 284 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:280:21 [INFO] [stdout] | [INFO] [stdout] 280 | / if let Some(idx) = tc_index { [INFO] [stdout] 281 | | if let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | | call_id = existing.clone(); [INFO] [stdout] 283 | | } [INFO] [stdout] 284 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 280 ~ if let Some(idx) = tc_index [INFO] [stdout] 281 ~ && let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | call_id = existing.clone(); [INFO] [stdout] 283 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:286:17 [INFO] [stdout] | [INFO] [stdout] 286 | / if call_id.is_empty() && tool_calls.len() == 1 { [INFO] [stdout] 287 | | if let Some(last) = call_order.last() { [INFO] [stdout] 288 | | call_id = last.clone(); [INFO] [stdout] 289 | | } [INFO] [stdout] 290 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 286 ~ if call_id.is_empty() && tool_calls.len() == 1 [INFO] [stdout] 287 ~ && let Some(last) = call_order.last() { [INFO] [stdout] 288 | call_id = last.clone(); [INFO] [stdout] 289 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:291:17 [INFO] [stdout] | [INFO] [stdout] 291 | / if call_id.is_empty() { [INFO] [stdout] 292 | | if let Some(existing) = call_order.get(tool_call_pos) { [INFO] [stdout] 293 | | call_id = existing.clone(); [INFO] [stdout] 294 | | } [INFO] [stdout] 295 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 291 ~ if call_id.is_empty() [INFO] [stdout] 292 ~ && let Some(existing) = call_order.get(tool_call_pos) { [INFO] [stdout] 293 | call_id = existing.clone(); [INFO] [stdout] 294 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:543:1 [INFO] [stdout] | [INFO] [stdout] 543 | / fn build_assistant_item( [INFO] [stdout] 544 | | assistant_message_phase: Option, [INFO] [stdout] 545 | | text_part_index: Option, [INFO] [stdout] 546 | | output_text: &str, [INFO] [stdout] ... | [INFO] [stdout] 554 | | tool_part_index_by_call_id: &HashMap, [INFO] [stdout] 555 | | ) -> Item { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:577:1 [INFO] [stdout] | [INFO] [stdout] 577 | / fn sorted_parts( [INFO] [stdout] 578 | | text_part_index: Option, [INFO] [stdout] 579 | | output_text: &str, [INFO] [stdout] 580 | | reasoning_part_index: Option, [INFO] [stdout] ... | [INFO] [stdout] 587 | | tool_part_index_by_call_id: &HashMap, [INFO] [stdout] 588 | | ) -> Vec<(u32, Part)> { [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / if ev.event == "response.output_text.delta" { [INFO] [stdout] 85 | | if let Some(text) = data_val.get("delta").and_then(|v| v.as_str()) { [INFO] [stdout] 86 | | let output_index = data_val [INFO] [stdout] 87 | | .get("output_index") [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 84 ~ if ev.event == "response.output_text.delta" [INFO] [stdout] 85 ~ && let Some(text) = data_val.get("delta").and_then(|v| v.as_str()) { [INFO] [stdout] 86 | let output_index = data_val [INFO] [stdout] ... [INFO] [stdout] 94 | saw_text_delta = true; [INFO] [stdout] 95 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | / if ev.event == "response.reasoning.delta" { [INFO] [stdout] 98 | | if let Some(delta) = data_val [INFO] [stdout] 99 | | .get("delta") [INFO] [stdout] 100 | | .and_then(|v| v.as_str()) [INFO] [stdout] ... | [INFO] [stdout] 105 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 97 ~ if ev.event == "response.reasoning.delta" [INFO] [stdout] 98 ~ && let Some(delta) = data_val [INFO] [stdout] 99 | .get("delta") [INFO] [stdout] ... [INFO] [stdout] 103 | reasoning_text.push_str(delta); [INFO] [stdout] 104 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / if ev.event == "response.reasoning.done" { [INFO] [stdout] 107 | | if let Some(text) = data_val [INFO] [stdout] 108 | | .get("text") [INFO] [stdout] 109 | | .and_then(|v| v.as_str()) [INFO] [stdout] ... | [INFO] [stdout] 116 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 106 ~ if ev.event == "response.reasoning.done" [INFO] [stdout] 107 ~ && let Some(text) = data_val [INFO] [stdout] 108 | .get("text") [INFO] [stdout] ... [INFO] [stdout] 114 | } [INFO] [stdout] 115 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | / if let Some(text) = data_val [INFO] [stdout] 108 | | .get("text") [INFO] [stdout] 109 | | .and_then(|v| v.as_str()) [INFO] [stdout] 110 | | .or_else(|| data_val.get("delta").and_then(|v| v.as_str())) [INFO] [stdout] ... | [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 110 ~ .or_else(|| data_val.get("delta").and_then(|v| v.as_str())) [INFO] [stdout] 111 ~ && reasoning_text.is_empty() { [INFO] [stdout] 112 | reasoning_text = text.to_string(); [INFO] [stdout] 113 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | / if ev.event == "response.reasoning_summary_text.delta" { [INFO] [stdout] 118 | | if let Some(delta) = data_val [INFO] [stdout] 119 | | .get("delta") [INFO] [stdout] 120 | | .and_then(|v| v.as_str()) [INFO] [stdout] ... | [INFO] [stdout] 125 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 117 ~ if ev.event == "response.reasoning_summary_text.delta" [INFO] [stdout] 118 ~ && let Some(delta) = data_val [INFO] [stdout] 119 | .get("delta") [INFO] [stdout] ... [INFO] [stdout] 123 | reasoning_summary_text.push_str(delta); [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:220:17 [INFO] [stdout] | [INFO] [stdout] 220 | / if let Some(entry) = calls.get_mut(call_id.as_str()) { [INFO] [stdout] 221 | | if entry.1.is_empty() && !args.is_empty() { [INFO] [stdout] 222 | | entry.1 = args.to_string(); [INFO] [stdout] 223 | | } [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 220 ~ if let Some(entry) = calls.get_mut(call_id.as_str()) [INFO] [stdout] 221 ~ && entry.1.is_empty() && !args.is_empty() { [INFO] [stdout] 222 | entry.1 = args.to_string(); [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/transforms/think_xml_to_reasoning.rs:88:73 [INFO] [stdout] | [INFO] [stdout] 88 | ... let parsed = extract_text_and_reasoning(&content, &cfg.tag); [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:262:20 [INFO] [stdout] | [INFO] [stdout] 262 | } else if item.get("type").and_then(|v| v.as_str()) == Some("message") [INFO] [stdout] | ____________________^ [INFO] [stdout] 263 | | && !saw_text_delta [INFO] [stdout] 264 | | { [INFO] [stdout] 265 | | if let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) { [INFO] [stdout] ... | [INFO] [stdout] 277 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 263 ~ && !saw_text_delta [INFO] [stdout] 264 ~ && let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) { [INFO] [stdout] 265 | let text = extract_responses_message_text(item); [INFO] [stdout] ... [INFO] [stdout] 274 | } [INFO] [stdout] 275 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/think_xml_to_reasoning.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | / if let PartDelta::Text { content } = delta { [INFO] [stdout] 189 | | if content.contains(&open) || *in_reasoning { [INFO] [stdout] 190 | | let mut s = content.clone(); [INFO] [stdout] 191 | | if let Some(pos) = s.find(&open) { [INFO] [stdout] ... | [INFO] [stdout] 206 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 188 ~ if let PartDelta::Text { content } = delta [INFO] [stdout] 189 ~ && (content.contains(&open) || *in_reasoning) { [INFO] [stdout] 190 | let mut s = content.clone(); [INFO] [stdout] ... [INFO] [stdout] 204 | }; [INFO] [stdout] 205 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:1102:30 [INFO] [stdout] | [INFO] [stdout] 1102 | fn output_text_delta_content<'a>(data_val: &'a Value) -> &'a str { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 1102 - fn output_text_delta_content<'a>(data_val: &'a Value) -> &'a str { [INFO] [stdout] 1102 + fn output_text_delta_content(data_val: &Value) -> &str { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_system.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / if let Item::Message { parts, .. } = &mut req.inputs[idx] { [INFO] [stdout] 104 | | if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 105 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ if let Item::Message { parts, .. } = &mut req.inputs[idx] [INFO] [stdout] 104 ~ && let Some(last_part) = parts.last_mut() { [INFO] [stdout] 105 | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 107 | } [INFO] [stdout] 108 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_system.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | / if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 105 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 107 | | } [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 104 ~ if let Some(last_part) = parts.last_mut() [INFO] [stdout] 105 ~ && let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 106 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:1127:5 [INFO] [stdout] | [INFO] [stdout] 1127 | / if let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) { [INFO] [stdout] 1128 | | if let Some(phase) = message_phases_by_output_index.get(&idx) { [INFO] [stdout] 1129 | | extra [INFO] [stdout] 1130 | | .entry("phase".to_string()) [INFO] [stdout] ... | [INFO] [stdout] 1133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1127 ~ if let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) [INFO] [stdout] 1128 ~ && let Some(phase) = message_phases_by_output_index.get(&idx) { [INFO] [stdout] 1129 | extra [INFO] [stdout] 1130 | .entry("phase".to_string()) [INFO] [stdout] 1131 | .or_insert_with(|| json!(phase)); [INFO] [stdout] 1132 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_tool_use.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | / if let Item::Message { role, parts, .. } = item { [INFO] [stdout] 90 | | if *role == Role::Assistant [INFO] [stdout] 91 | | && parts.iter().any(|p| matches!(p, Part::ToolCall { .. })) [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 89 ~ if let Item::Message { role, parts, .. } = item [INFO] [stdout] 90 ~ && *role == Role::Assistant [INFO] [stdout] 91 | && parts.iter().any(|p| matches!(p, Part::ToolCall { .. })) [INFO] [stdout] ... [INFO] [stdout] 94 | break; [INFO] [stdout] 95 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_tool_use.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | / if let Item::Message { parts, .. } = &mut req.inputs[user_idx] { [INFO] [stdout] 131 | | if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 132 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] ... | [INFO] [stdout] 136 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ if let Item::Message { parts, .. } = &mut req.inputs[user_idx] [INFO] [stdout] 131 ~ && let Some(last_part) = parts.last_mut() { [INFO] [stdout] 132 | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 134 | } [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:1338:1 [INFO] [stdout] | [INFO] [stdout] 1338 | / fn build_accumulated_output_items( [INFO] [stdout] 1339 | | reasoning_text: &str, [INFO] [stdout] 1340 | | reasoning_summary_text: &str, [INFO] [stdout] 1341 | | reasoning_sig: &str, [INFO] [stdout] ... | [INFO] [stdout] 1347 | | call_ids_by_output_index: &HashMap, [INFO] [stdout] 1348 | | ) -> Vec { [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/auto_cache_tool_use.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | / if let Some(last_part) = parts.last_mut() { [INFO] [stdout] 132 | | if let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 134 | | } [INFO] [stdout] 135 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 131 ~ if let Some(last_part) = parts.last_mut() [INFO] [stdout] 132 ~ && let Some(eb) = part_extra_body_mut(last_part) { [INFO] [stdout] 133 | eb.insert("cache_control".to_string(), json!({"type": "ephemeral"})); [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/transforms/compress_user_message_images.rs:155:77 [INFO] [stdout] | [INFO] [stdout] 155 | let Some((media_type, data)) = split_image_data_url(&url) else { [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | / if let Some(patterns) = &rule.models { [INFO] [stdout] 237 | | if !patterns [INFO] [stdout] 238 | | .iter() [INFO] [stdout] 239 | | .any(|pattern| model_glob_match(pattern, current_model)) [INFO] [stdout] ... | [INFO] [stdout] 243 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 236 ~ if let Some(patterns) = &rule.models [INFO] [stdout] 237 ~ && !patterns [INFO] [stdout] 238 | .iter() [INFO] [stdout] ... [INFO] [stdout] 241 | continue; [INFO] [stdout] 242 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | / if let Item::Message { role, .. } = item { [INFO] [stdout] 283 | | if *role == Role::System { [INFO] [stdout] 284 | | *role = Role::Developer; [INFO] [stdout] 285 | | } [INFO] [stdout] 286 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 282 ~ if let Item::Message { role, .. } = item [INFO] [stdout] 283 ~ && *role == Role::System { [INFO] [stdout] 284 | *role = Role::Developer; [INFO] [stdout] 285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | / if let Item::Message { [INFO] [stdout] 294 | | role, [INFO] [stdout] 295 | | parts, [INFO] [stdout] 296 | | extra_body, [INFO] [stdout] ... | [INFO] [stdout] 315 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 297 ~ } = item [INFO] [stdout] 298 ~ && let Some(Item::Message { [INFO] [stdout] 299 | role: last_role, [INFO] [stdout] ... [INFO] [stdout] 312 | } [INFO] [stdout] 313 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/transforms/mod.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | / if let Some(Item::Message { [INFO] [stdout] 300 | | role: last_role, [INFO] [stdout] 301 | | parts: last_parts, [INFO] [stdout] 302 | | extra_body: last_extra, [INFO] [stdout] ... | [INFO] [stdout] 314 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 303 ~ }) = merged.last_mut() [INFO] [stdout] 304 ~ && last_role == role { [INFO] [stdout] 305 | last_parts.extend(parts.clone()); [INFO] [stdout] ... [INFO] [stdout] 311 | continue; [INFO] [stdout] 312 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:305:29 [INFO] [stdout] | [INFO] [stdout] 305 | ... &content, [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:311:21 [INFO] [stdout] | [INFO] [stdout] 311 | / if let Some(signature) = encrypted [INFO] [stdout] 312 | | .as_ref() [INFO] [stdout] 313 | | .and_then(Value::as_str) [INFO] [stdout] 314 | | .filter(|signature| !signature.is_empty()) [INFO] [stdout] ... | [INFO] [stdout] 331 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 314 ~ .filter(|signature| !signature.is_empty()) [INFO] [stdout] 315 ~ && block_state.sent_thinking { [INFO] [stdout] 316 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 328 | block_state.sent_signature = true; [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:341:25 [INFO] [stdout] | [INFO] [stdout] 341 | / if !block_state.sent_thinking { [INFO] [stdout] 342 | | if let Some(content) = reasoning_display_text(&part) { [INFO] [stdout] 343 | | send_messages_delta_string( [INFO] [stdout] 344 | | &tx, [INFO] [stdout] ... | [INFO] [stdout] 356 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 341 ~ if !block_state.sent_thinking [INFO] [stdout] 342 ~ && let Some(content) = reasoning_display_text(&part) { [INFO] [stdout] 343 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 354 | .await?; [INFO] [stdout] 355 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | / if !block_state.sent_signature { [INFO] [stdout] 358 | | if let Some(signature) = encrypted [INFO] [stdout] 359 | | .as_ref() [INFO] [stdout] 360 | | .and_then(Value::as_str) [INFO] [stdout] ... | [INFO] [stdout] 376 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 357 ~ if !block_state.sent_signature [INFO] [stdout] 358 ~ && let Some(signature) = encrypted [INFO] [stdout] 359 | .as_ref() [INFO] [stdout] ... [INFO] [stdout] 374 | .await?; [INFO] [stdout] 375 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/upstream.rs:212:6 [INFO] [stdout] | [INFO] [stdout] 212 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:467:6 [INFO] [stdout] | [INFO] [stdout] 467 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | / if !content.is_empty() { [INFO] [stdout] 500 | | send_messages_delta_string( [INFO] [stdout] 501 | | tx, [INFO] [stdout] 502 | | json!({ [INFO] [stdout] ... | [INFO] [stdout] 511 | | .await?; [INFO] [stdout] 512 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 498 ~ Part::Text { content, .. } | Part::Refusal { content, .. } [INFO] [stdout] 499 ~ if !content.is_empty() => { [INFO] [stdout] 500 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 511 | .await?; [INFO] [stdout] 512 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:553:13 [INFO] [stdout] | [INFO] [stdout] 553 | / if !arguments.is_empty() { [INFO] [stdout] 554 | | send_messages_delta_string( [INFO] [stdout] 555 | | tx, [INFO] [stdout] 556 | | json!({ [INFO] [stdout] ... | [INFO] [stdout] 565 | | .await?; [INFO] [stdout] 566 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 552 ~ Part::ToolCall { arguments, .. } [INFO] [stdout] 553 ~ if !arguments.is_empty() => { [INFO] [stdout] 554 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 565 | .await?; [INFO] [stdout] 566 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/stream_encode/openai_chat.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | / ... if !content.is_empty() { [INFO] [stdout] 162 | | ... send_chat_chunk_string( [INFO] [stdout] 163 | | ... &tx, [INFO] [stdout] 164 | | ... &id, [INFO] [stdout] ... | [INFO] [stdout] 172 | | ... .await?; [INFO] [stdout] 173 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 160 ~ Part::Text { content, .. } | Part::Refusal { content, .. } [INFO] [stdout] 161 ~ if !content.is_empty() => { [INFO] [stdout] 162 | send_chat_chunk_string( [INFO] [stdout] ... [INFO] [stdout] 172 | .await?; [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/anthropic.rs:225:25 [INFO] [stdout] | [INFO] [stdout] 225 | / if let Some(signature) = bobj.get("signature").and_then(|v| v.as_str()) { [INFO] [stdout] 226 | | if !signature.is_empty() { [INFO] [stdout] 227 | | parts.push(Part::Reasoning { [INFO] [stdout] 228 | | content: None, [INFO] [stdout] ... | [INFO] [stdout] 235 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 225 ~ if let Some(signature) = bobj.get("signature").and_then(|v| v.as_str()) [INFO] [stdout] 226 ~ && !signature.is_empty() { [INFO] [stdout] 227 | parts.push(Part::Reasoning { [INFO] [stdout] ... [INFO] [stdout] 233 | }); [INFO] [stdout] 234 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/gemini.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | / if let Some(gen_cfg) = obj.get("generationConfig").and_then(|v| v.as_object()) { [INFO] [stdout] 180 | | if let Some(thinking) = gen_cfg.get("thinkingConfig").and_then(|v| v.as_object()) { [INFO] [stdout] 181 | | let budget = thinking [INFO] [stdout] 182 | | .get("thinkingBudget") [INFO] [stdout] ... | [INFO] [stdout] 202 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 179 ~ if let Some(gen_cfg) = obj.get("generationConfig").and_then(|v| v.as_object()) [INFO] [stdout] 180 ~ && let Some(thinking) = gen_cfg.get("thinkingConfig").and_then(|v| v.as_object()) { [INFO] [stdout] 181 | let budget = thinking [INFO] [stdout] ... [INFO] [stdout] 200 | }); [INFO] [stdout] 201 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/gemini.rs:455:5 [INFO] [stdout] | [INFO] [stdout] 455 | / if let Some(text) = obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 456 | | if !text.is_empty() { [INFO] [stdout] 457 | | if obj.get("thought").and_then(|v| v.as_bool()) == Some(true) { [INFO] [stdout] 458 | | out.push(Part::Reasoning { [INFO] [stdout] ... | [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 455 ~ if let Some(text) = obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 456 ~ && !text.is_empty() { [INFO] [stdout] 457 | if obj.get("thought").and_then(|v| v.as_bool()) == Some(true) { [INFO] [stdout] ... [INFO] [stdout] 470 | } [INFO] [stdout] 471 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/gemini.rs:660:5 [INFO] [stdout] | [INFO] [stdout] 660 | / if let Some(obj) = value.as_object() { [INFO] [stdout] 661 | | if let Some(parts) = obj.get("parts").and_then(|v| v.as_array()) { [INFO] [stdout] 662 | | for part in parts { [INFO] [stdout] 663 | | if let Some(text) = part.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] ... | [INFO] [stdout] 668 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 660 ~ if let Some(obj) = value.as_object() [INFO] [stdout] 661 ~ && let Some(parts) = obj.get("parts").and_then(|v| v.as_array()) { [INFO] [stdout] 662 | for part in parts { [INFO] [stdout] ... [INFO] [stdout] 666 | } [INFO] [stdout] 667 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:246:25 [INFO] [stdout] | [INFO] [stdout] 246 | / if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 247 | | if !text.is_empty() { [INFO] [stdout] 248 | | parts.push(text_part_with_phase( [INFO] [stdout] 249 | | text, [INFO] [stdout] ... | [INFO] [stdout] 254 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 246 ~ if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 247 ~ && !text.is_empty() { [INFO] [stdout] 248 | parts.push(text_part_with_phase( [INFO] [stdout] ... [INFO] [stdout] 252 | )); [INFO] [stdout] 253 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | / if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) { [INFO] [stdout] 267 | | if !refusal.is_empty() { [INFO] [stdout] 268 | | parts.push(Part::Refusal { [INFO] [stdout] 269 | | content: refusal.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 273 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 266 ~ if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) [INFO] [stdout] 267 ~ && !refusal.is_empty() { [INFO] [stdout] 268 | parts.push(Part::Refusal { [INFO] [stdout] ... [INFO] [stdout] 271 | }); [INFO] [stdout] 272 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:409:21 [INFO] [stdout] | [INFO] [stdout] 409 | / if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 410 | | if !text.is_empty() { [INFO] [stdout] 411 | | parts.push(text_part_with_phase( [INFO] [stdout] 412 | | text, [INFO] [stdout] ... | [INFO] [stdout] 417 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 409 ~ if let Some(text) = item_obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 410 ~ && !text.is_empty() { [INFO] [stdout] 411 | parts.push(text_part_with_phase( [INFO] [stdout] ... [INFO] [stdout] 415 | )); [INFO] [stdout] 416 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:468:5 [INFO] [stdout] | [INFO] [stdout] 468 | / if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) { [INFO] [stdout] 469 | | if !refusal.is_empty() { [INFO] [stdout] 470 | | parts.push(Part::Refusal { [INFO] [stdout] 471 | | content: refusal.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 475 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 468 ~ if let Some(refusal) = msg_obj.get("refusal").and_then(|v| v.as_str()) [INFO] [stdout] 469 ~ && !refusal.is_empty() { [INFO] [stdout] 470 | parts.push(Part::Refusal { [INFO] [stdout] ... [INFO] [stdout] 473 | }); [INFO] [stdout] 474 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:613:21 [INFO] [stdout] | [INFO] [stdout] 613 | / if let Some(text) = detail_obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 614 | | if !text.is_empty() { [INFO] [stdout] 615 | | merge_reasoning_part( [INFO] [stdout] 616 | | parts, [INFO] [stdout] ... | [INFO] [stdout] 624 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 613 ~ if let Some(text) = detail_obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 614 ~ && !text.is_empty() { [INFO] [stdout] 615 | merge_reasoning_part( [INFO] [stdout] ... [INFO] [stdout] 622 | saw_plain = true; [INFO] [stdout] 623 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:632:21 [INFO] [stdout] | [INFO] [stdout] 632 | / if let Some(data) = detail_obj.get("data") { [INFO] [stdout] 633 | | if !matches!(data, Value::Null) { [INFO] [stdout] 634 | | if let Some(s) = data.as_str() { [INFO] [stdout] 635 | | if s.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 642 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 632 ~ if let Some(data) = detail_obj.get("data") [INFO] [stdout] 633 ~ && !matches!(data, Value::Null) { [INFO] [stdout] 634 | if let Some(s) = data.as_str() { [INFO] [stdout] ... [INFO] [stdout] 640 | saw_encrypted = true; [INFO] [stdout] 641 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:634:29 [INFO] [stdout] | [INFO] [stdout] 634 | / ... if let Some(s) = data.as_str() { [INFO] [stdout] 635 | | ... if s.is_empty() { [INFO] [stdout] 636 | | ... continue; [INFO] [stdout] 637 | | ... } [INFO] [stdout] 638 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 634 ~ if let Some(s) = data.as_str() [INFO] [stdout] 635 ~ && s.is_empty() { [INFO] [stdout] 636 | continue; [INFO] [stdout] 637 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:650:21 [INFO] [stdout] | [INFO] [stdout] 650 | / if let Some(summary) = detail_obj.get("summary").and_then(|v| v.as_str()) { [INFO] [stdout] 651 | | if !summary.is_empty() { [INFO] [stdout] 652 | | merge_reasoning_part( [INFO] [stdout] 653 | | parts, [INFO] [stdout] ... | [INFO] [stdout] 661 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 650 ~ if let Some(summary) = detail_obj.get("summary").and_then(|v| v.as_str()) [INFO] [stdout] 651 ~ && !summary.is_empty() { [INFO] [stdout] 652 | merge_reasoning_part( [INFO] [stdout] ... [INFO] [stdout] 659 | saw_plain = true; [INFO] [stdout] 660 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:668:5 [INFO] [stdout] | [INFO] [stdout] 668 | / if !saw_plain { [INFO] [stdout] 669 | | if let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 670 | | if !reasoning.is_empty() { [INFO] [stdout] 671 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] ... | [INFO] [stdout] 675 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 668 ~ if !saw_plain [INFO] [stdout] 669 ~ && let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 670 | if !reasoning.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 673 | } [INFO] [stdout] 674 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:669:9 [INFO] [stdout] | [INFO] [stdout] 669 | / if let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 670 | | if !reasoning.is_empty() { [INFO] [stdout] 671 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 672 | | saw_plain = true; [INFO] [stdout] 673 | | } [INFO] [stdout] 674 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 669 ~ if let Some(reasoning) = msg_obj.get("reasoning").and_then(|v| v.as_str()) [INFO] [stdout] 670 ~ && !reasoning.is_empty() { [INFO] [stdout] 671 | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 672 | saw_plain = true; [INFO] [stdout] 673 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:677:5 [INFO] [stdout] | [INFO] [stdout] 677 | / if !saw_plain { [INFO] [stdout] 678 | | if let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 679 | | if !reasoning.is_empty() { [INFO] [stdout] 680 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] ... | [INFO] [stdout] 683 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 677 ~ if !saw_plain [INFO] [stdout] 678 ~ && let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 679 | if !reasoning.is_empty() { [INFO] [stdout] 680 | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 681 | } [INFO] [stdout] 682 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:678:9 [INFO] [stdout] | [INFO] [stdout] 678 | / if let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 679 | | if !reasoning.is_empty() { [INFO] [stdout] 680 | | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 681 | | } [INFO] [stdout] 682 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 678 ~ if let Some(reasoning) = msg_obj.get("reasoning_content").and_then(|v| v.as_str()) [INFO] [stdout] 679 ~ && !reasoning.is_empty() { [INFO] [stdout] 680 | merge_reasoning_part(parts, Some(reasoning.to_string()), None, None, None); [INFO] [stdout] 681 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:685:5 [INFO] [stdout] | [INFO] [stdout] 685 | / if !saw_encrypted { [INFO] [stdout] 686 | | if let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 687 | | if !opaque.is_empty() { [INFO] [stdout] 688 | | merge_reasoning_part( [INFO] [stdout] ... | [INFO] [stdout] 697 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 685 ~ if !saw_encrypted [INFO] [stdout] 686 ~ && let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 687 | if !opaque.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 695 | } [INFO] [stdout] 696 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_chat.rs:686:9 [INFO] [stdout] | [INFO] [stdout] 686 | / if let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 687 | | if !opaque.is_empty() { [INFO] [stdout] 688 | | merge_reasoning_part( [INFO] [stdout] 689 | | parts, [INFO] [stdout] ... | [INFO] [stdout] 696 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 686 ~ if let Some(opaque) = msg_obj.get("reasoning_opaque").and_then(|v| v.as_str()) [INFO] [stdout] 687 ~ && !opaque.is_empty() { [INFO] [stdout] 688 | merge_reasoning_part( [INFO] [stdout] ... [INFO] [stdout] 694 | ); [INFO] [stdout] 695 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/openai_responses.rs:1700:5 [INFO] [stdout] | [INFO] [stdout] 1700 | / if content.len() == 1 { [INFO] [stdout] 1701 | | if let ToolResultContent::Text { text } = &content[0] { [INFO] [stdout] 1702 | | return Value::String(text.clone()); [INFO] [stdout] 1703 | | } [INFO] [stdout] 1704 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1700 ~ if content.len() == 1 [INFO] [stdout] 1701 ~ && let ToolResultContent::Text { text } = &content[0] { [INFO] [stdout] 1702 | return Value::String(text.clone()); [INFO] [stdout] 1703 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_responses.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | / if let Some(instructions) = obj.get("instructions").and_then(|v| v.as_str()) { [INFO] [stdout] 213 | | if !instructions.is_empty() { [INFO] [stdout] 214 | | inputs.push(Item::text(Role::Developer, instructions)); [INFO] [stdout] 215 | | } [INFO] [stdout] 216 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 212 ~ if let Some(instructions) = obj.get("instructions").and_then(|v| v.as_str()) [INFO] [stdout] 213 ~ && !instructions.is_empty() { [INFO] [stdout] 214 | inputs.push(Item::text(Role::Developer, instructions)); [INFO] [stdout] 215 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/urp/stream_helpers.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | / pub(crate) async fn send_chat_chunk_string( [INFO] [stdout] 57 | | tx: &mpsc::Sender, [INFO] [stdout] 58 | | id: &str, [INFO] [stdout] 59 | | created: i64, [INFO] [stdout] ... | [INFO] [stdout] 64 | | max_frame_length: Option, [INFO] [stdout] 65 | | ) -> AppResult<()> { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/urp/decode/openai_responses.rs:713:25 [INFO] [stdout] | [INFO] [stdout] 713 | / item_obj [INFO] [stdout] 714 | | .get("encrypted_content") [INFO] [stdout] 715 | | .and_then(|value| match value { [INFO] [stdout] 716 | | Value::String(text) => Some(Value::String(text.clone())), [INFO] [stdout] 717 | | _ => Some(value.clone()), [INFO] [stdout] 718 | | }); [INFO] [stdout] | |______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 715 ~ .map(|value| match value { [INFO] [stdout] 716 ~ Value::String(text) => Value::String(text.clone()), [INFO] [stdout] 717 ~ _ => value.clone(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Option` [INFO] [stdout] --> src/urp/decode/openai_responses.rs:722:26 [INFO] [stdout] | [INFO] [stdout] 722 | .map(|_| summary_to_text(item_obj)) [INFO] [stdout] | __________________________^ [INFO] [stdout] 723 | | .flatten(); [INFO] [stdout] | |__________________________________^ help: try replacing `map` with `and_then` and remove the `.flatten()`: `and_then(|_| summary_to_text(item_obj))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/openai_responses.rs:828:13 [INFO] [stdout] | [INFO] [stdout] 828 | / if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") { [INFO] [stdout] 829 | | if let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 830 | | out.push_str(t); [INFO] [stdout] 831 | | } [INFO] [stdout] 832 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 828 ~ if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") [INFO] [stdout] 829 ~ && let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 830 | out.push_str(t); [INFO] [stdout] 831 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:375:25 [INFO] [stdout] | [INFO] [stdout] 375 | / if let Some(part_obj) = part.as_object_mut() { [INFO] [stdout] 376 | | if part_obj.get("type").and_then(|v| v.as_str()) == Some("output_text") { [INFO] [stdout] 377 | | part_obj.insert("text".to_string(), Value::String(String::new())); [INFO] [stdout] 378 | | } [INFO] [stdout] 379 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 375 ~ if let Some(part_obj) = part.as_object_mut() [INFO] [stdout] 376 ~ && part_obj.get("type").and_then(|v| v.as_str()) == Some("output_text") { [INFO] [stdout] 377 | part_obj.insert("text".to_string(), Value::String(String::new())); [INFO] [stdout] 378 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | / if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") { [INFO] [stdout] 429 | | if let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 430 | | if !t.is_empty() { [INFO] [stdout] 431 | | parts.push(t); [INFO] [stdout] ... | [INFO] [stdout] 434 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 428 ~ if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") [INFO] [stdout] 429 ~ && let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 430 | if !t.is_empty() { [INFO] [stdout] 431 | parts.push(t); [INFO] [stdout] 432 | } [INFO] [stdout] 433 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:429:17 [INFO] [stdout] | [INFO] [stdout] 429 | / if let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 430 | | if !t.is_empty() { [INFO] [stdout] 431 | | parts.push(t); [INFO] [stdout] 432 | | } [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 429 ~ if let Some(t) = s.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 430 ~ && !t.is_empty() { [INFO] [stdout] 431 | parts.push(t); [INFO] [stdout] 432 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:488:13 [INFO] [stdout] | [INFO] [stdout] 488 | / if let Some(t) = obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 489 | | if !t.is_empty() { [INFO] [stdout] 490 | | text_out.push(t.to_string()); [INFO] [stdout] 491 | | } [INFO] [stdout] 492 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 488 ~ if let Some(t) = obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 489 ~ && !t.is_empty() { [INFO] [stdout] 490 | text_out.push(t.to_string()); [INFO] [stdout] 491 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:504:13 [INFO] [stdout] | [INFO] [stdout] 504 | / if let Some(summary) = obj.get("summary").and_then(|v| v.as_str()) { [INFO] [stdout] 505 | | if !summary.is_empty() { [INFO] [stdout] 506 | | summary_out.push(summary.to_string()); [INFO] [stdout] 507 | | } [INFO] [stdout] 508 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 504 ~ if let Some(summary) = obj.get("summary").and_then(|v| v.as_str()) [INFO] [stdout] 505 ~ && !summary.is_empty() { [INFO] [stdout] 506 | summary_out.push(summary.to_string()); [INFO] [stdout] 507 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | / if text_parts.is_empty() { [INFO] [stdout] 531 | | if let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 532 | | if !reasoning.is_empty() { [INFO] [stdout] 533 | | text_parts.push(reasoning.to_string()); [INFO] [stdout] ... | [INFO] [stdout] 536 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 530 ~ if text_parts.is_empty() [INFO] [stdout] 531 ~ && let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 532 | if !reasoning.is_empty() { [INFO] [stdout] 533 | text_parts.push(reasoning.to_string()); [INFO] [stdout] 534 | } [INFO] [stdout] 535 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:531:9 [INFO] [stdout] | [INFO] [stdout] 531 | / if let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 532 | | if !reasoning.is_empty() { [INFO] [stdout] 533 | | text_parts.push(reasoning.to_string()); [INFO] [stdout] 534 | | } [INFO] [stdout] 535 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 531 ~ if let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) [INFO] [stdout] 532 ~ && !reasoning.is_empty() { [INFO] [stdout] 533 | text_parts.push(reasoning.to_string()); [INFO] [stdout] 534 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:538:5 [INFO] [stdout] | [INFO] [stdout] 538 | / if let Some(reasoning) = delta.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 539 | | if !reasoning.is_empty() { [INFO] [stdout] 540 | | text_parts.push(reasoning.to_string()); [INFO] [stdout] 541 | | } [INFO] [stdout] 542 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 538 ~ if let Some(reasoning) = delta.get("reasoning_content").and_then(|v| v.as_str()) [INFO] [stdout] 539 ~ && !reasoning.is_empty() { [INFO] [stdout] 540 | text_parts.push(reasoning.to_string()); [INFO] [stdout] 541 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 543 | / if let Some(sig) = delta.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 544 | | if !sig.is_empty() { [INFO] [stdout] 545 | | sig_parts.push(sig.to_string()); [INFO] [stdout] 546 | | } [INFO] [stdout] 547 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 543 ~ if let Some(sig) = delta.get("reasoning_opaque").and_then(|v| v.as_str()) [INFO] [stdout] 544 ~ && !sig.is_empty() { [INFO] [stdout] 545 | sig_parts.push(sig.to_string()); [INFO] [stdout] 546 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:584:13 [INFO] [stdout] | [INFO] [stdout] 584 | / if part.get("type").and_then(|v| v.as_str()) == Some("output_text") { [INFO] [stdout] 585 | | if let Some(text) = part.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 586 | | out.push_str(text); [INFO] [stdout] 587 | | } [INFO] [stdout] 588 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 584 ~ if part.get("type").and_then(|v| v.as_str()) == Some("output_text") [INFO] [stdout] 585 ~ && let Some(text) = part.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 586 | out.push_str(text); [INFO] [stdout] 587 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/decode/mod.rs:291:13 [INFO] [stdout] | [INFO] [stdout] 291 | / if let Some(obj) = item.as_object() { [INFO] [stdout] 292 | | if let Some(text) = obj.get("text").and_then(|x| x.as_str()) { [INFO] [stdout] 293 | | out.push_str(text); [INFO] [stdout] 294 | | } [INFO] [stdout] 295 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 291 ~ if let Some(obj) = item.as_object() [INFO] [stdout] 292 ~ && let Some(text) = obj.get("text").and_then(|x| x.as_str()) { [INFO] [stdout] 293 | out.push_str(text); [INFO] [stdout] 294 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | / if let Part::Text { [INFO] [stdout] 25 | | content: text, [INFO] [stdout] 26 | | extra_body, [INFO] [stdout] 27 | | .. [INFO] [stdout] ... | [INFO] [stdout] 45 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 28 ~ } = part [INFO] [stdout] 29 ~ && !text.is_empty() { [INFO] [stdout] 30 | let mut block = json!({ "type": "text", "text": text }); [INFO] [stdout] ... [INFO] [stdout] 42 | system_blocks.push(block); [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / if let Some(reasoning) = &req.reasoning { [INFO] [stdout] 92 | | if let Some(effort) = &reasoning.effort { [INFO] [stdout] 93 | | if model_supports_adaptive(upstream_model) { [INFO] [stdout] 94 | | obj.insert("thinking".to_string(), json!({ "type": "adaptive" })); [INFO] [stdout] ... | [INFO] [stdout] 106 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 91 ~ if let Some(reasoning) = &req.reasoning [INFO] [stdout] 92 ~ && let Some(effort) = &reasoning.effort { [INFO] [stdout] 93 | if model_supports_adaptive(upstream_model) { [INFO] [stdout] ... [INFO] [stdout] 104 | } [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | / if !has_reasoning_part { [INFO] [stdout] 259 | | if let Some(enc) = &encrypted { [INFO] [stdout] 260 | | let block = json!({ "type": "thinking", "thinking": "", "signature": enc }); [INFO] [stdout] 261 | | content.insert(0, block); [INFO] [stdout] 262 | | } [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 258 ~ if !has_reasoning_part [INFO] [stdout] 259 ~ && let Some(enc) = &encrypted { [INFO] [stdout] 260 | let block = json!({ "type": "thinking", "thinking": "", "signature": enc }); [INFO] [stdout] 261 | content.insert(0, block); [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:284:5 [INFO] [stdout] | [INFO] [stdout] 284 | / if let Some(usage) = &resp.usage { [INFO] [stdout] 285 | | if let Some(obj) = usage_value.as_object_mut() { [INFO] [stdout] 286 | | let input_details = usage_input_details(usage); [INFO] [stdout] 287 | | let output_details = usage_output_details(usage); [INFO] [stdout] ... | [INFO] [stdout] 321 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 284 ~ if let Some(usage) = &resp.usage [INFO] [stdout] 285 ~ && let Some(obj) = usage_value.as_object_mut() { [INFO] [stdout] 286 | let input_details = usage_input_details(usage); [INFO] [stdout] ... [INFO] [stdout] 319 | } [INFO] [stdout] 320 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/anthropic.rs:580:13 [INFO] [stdout] | [INFO] [stdout] 580 | / if let Ok(major) = major_str.parse::() { [INFO] [stdout] 581 | | if major >= 5 { [INFO] [stdout] 582 | | return true; [INFO] [stdout] 583 | | } [INFO] [stdout] 584 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 580 ~ if let Ok(major) = major_str.parse::() [INFO] [stdout] 581 ~ && major >= 5 { [INFO] [stdout] 582 | return true; [INFO] [stdout] 583 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/gemini.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / if let Some(reasoning) = &req.reasoning { [INFO] [stdout] 102 | | if let Some(effort) = &reasoning.effort { [INFO] [stdout] 103 | | generation_config.insert( [INFO] [stdout] 104 | | "thinkingConfig".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 101 ~ if let Some(reasoning) = &req.reasoning [INFO] [stdout] 102 ~ && let Some(effort) = &reasoning.effort { [INFO] [stdout] 103 | generation_config.insert( [INFO] [stdout] ... [INFO] [stdout] 106 | ); [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/gemini.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | / if let Some(tc) = &req.tool_choice { [INFO] [stdout] 127 | | if let Some(cfg) = encode_tool_choice(tc) { [INFO] [stdout] 128 | | obj.insert( [INFO] [stdout] 129 | | "toolConfig".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 126 ~ if let Some(tc) = &req.tool_choice [INFO] [stdout] 127 ~ && let Some(cfg) = encode_tool_choice(tc) { [INFO] [stdout] 128 | obj.insert( [INFO] [stdout] ... [INFO] [stdout] 131 | ); [INFO] [stdout] 132 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:175:70 [INFO] [stdout] | [INFO] [stdout] 175 | ... let args = serde_json::from_str::(&arguments) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `arguments` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:185:84 [INFO] [stdout] | [INFO] [stdout] 185 | Part::Image { source, .. } => parts.push(encode_image_part(&source)), [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:186:82 [INFO] [stdout] | [INFO] [stdout] 186 | Part::File { source, .. } => parts.push(encode_file_part(&source)), [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/encode/gemini.rs:187:84 [INFO] [stdout] | [INFO] [stdout] 187 | Part::Audio { source, .. } => parts.push(encode_audio_part(&source)), [INFO] [stdout] | ^^^^^^^ help: change this to: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/gemini.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | / if let Some(usage) = &resp.usage { [INFO] [stdout] 209 | | if let Some(obj) = usage_metadata.as_object_mut() { [INFO] [stdout] 210 | | let input_details = usage_input_details(usage); [INFO] [stdout] 211 | | let output_details = usage_output_details(usage); [INFO] [stdout] ... | [INFO] [stdout] 252 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 208 ~ if let Some(usage) = &resp.usage [INFO] [stdout] 209 ~ && let Some(obj) = usage_metadata.as_object_mut() { [INFO] [stdout] 210 | let input_details = usage_input_details(usage); [INFO] [stdout] ... [INFO] [stdout] 250 | } [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_chat.rs:235:5 [INFO] [stdout] | [INFO] [stdout] 235 | / if let Some(reasoning) = &req.reasoning { [INFO] [stdout] 236 | | if let Some(effort) = &reasoning.effort { [INFO] [stdout] 237 | | obj.insert( [INFO] [stdout] 238 | | "reasoning_effort".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 242 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 235 ~ if let Some(reasoning) = &req.reasoning [INFO] [stdout] 236 ~ && let Some(effort) = &reasoning.effort { [INFO] [stdout] 237 | obj.insert( [INFO] [stdout] ... [INFO] [stdout] 240 | ); [INFO] [stdout] 241 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_chat.rs:502:9 [INFO] [stdout] | [INFO] [stdout] 502 | / if let Some(enc) = encrypted { [INFO] [stdout] 503 | | if !matches!(enc, Value::Null) { [INFO] [stdout] 504 | | if let Some(s) = enc.as_str() { [INFO] [stdout] 505 | | if s.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 515 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 502 ~ if let Some(enc) = encrypted [INFO] [stdout] 503 ~ && !matches!(enc, Value::Null) { [INFO] [stdout] 504 | if let Some(s) = enc.as_str() { [INFO] [stdout] ... [INFO] [stdout] 513 | } [INFO] [stdout] 514 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_chat.rs:504:17 [INFO] [stdout] | [INFO] [stdout] 504 | / if let Some(s) = enc.as_str() { [INFO] [stdout] 505 | | if s.is_empty() { [INFO] [stdout] 506 | | continue; [INFO] [stdout] 507 | | } [INFO] [stdout] 508 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 504 ~ if let Some(s) = enc.as_str() [INFO] [stdout] 505 ~ && s.is_empty() { [INFO] [stdout] 506 | continue; [INFO] [stdout] 507 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/encode/openai_chat.rs:618:13 [INFO] [stdout] | [INFO] [stdout] 618 | / if !text.is_empty() { [INFO] [stdout] 619 | | out.push(json!({ "type": "text", "text": text })); [INFO] [stdout] 620 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 617 ~ Value::String(text) [INFO] [stdout] 618 ~ if !text.is_empty() => { [INFO] [stdout] 619 | out.push(json!({ "type": "text", "text": text })); [INFO] [stdout] 620 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/encode/openai_responses.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | / if !consumed_instructions && can_use_responses_instructions(item) { [INFO] [stdout] 221 | | if let Item::Message { parts, .. } = item { [INFO] [stdout] 222 | | let text = text_parts(parts); [INFO] [stdout] 223 | | if !text.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 229 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 220 ~ if !consumed_instructions && can_use_responses_instructions(item) [INFO] [stdout] 221 ~ && let Item::Message { parts, .. } = item { [INFO] [stdout] 222 | let text = text_parts(parts); [INFO] [stdout] ... [INFO] [stdout] 227 | } [INFO] [stdout] 228 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/gemini.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | / if current_reasoning_sig.len() > reasoning_sig.len() { [INFO] [stdout] 213 | | if !started_reasoning_part { [INFO] [stdout] 214 | | let _ = tx [INFO] [stdout] 215 | | .send(UrpStreamEvent::PartStart { [INFO] [stdout] ... | [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 212 ~ if current_reasoning_sig.len() > reasoning_sig.len() [INFO] [stdout] 213 ~ && !started_reasoning_part { [INFO] [stdout] 214 | let _ = tx [INFO] [stdout] ... [INFO] [stdout] 222 | started_reasoning_part = true; [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | / if let Some(t) = delta.get("content").and_then(|v| v.as_str()) { [INFO] [stdout] 115 | | if !t.is_empty() { [INFO] [stdout] 116 | | ensure_response_and_item_started( [INFO] [stdout] 117 | | &tx, [INFO] [stdout] ... | [INFO] [stdout] 146 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 114 ~ if let Some(t) = delta.get("content").and_then(|v| v.as_str()) [INFO] [stdout] 115 ~ && !t.is_empty() { [INFO] [stdout] 116 | ensure_response_and_item_started( [INFO] [stdout] ... [INFO] [stdout] 144 | .await?; [INFO] [stdout] 145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:279:17 [INFO] [stdout] | [INFO] [stdout] 279 | / if call_id.is_empty() { [INFO] [stdout] 280 | | if let Some(idx) = tc_index { [INFO] [stdout] 281 | | if let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | | call_id = existing.clone(); [INFO] [stdout] ... | [INFO] [stdout] 285 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 279 ~ if call_id.is_empty() [INFO] [stdout] 280 ~ && let Some(idx) = tc_index { [INFO] [stdout] 281 | if let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | call_id = existing.clone(); [INFO] [stdout] 283 | } [INFO] [stdout] 284 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:280:21 [INFO] [stdout] | [INFO] [stdout] 280 | / if let Some(idx) = tc_index { [INFO] [stdout] 281 | | if let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | | call_id = existing.clone(); [INFO] [stdout] 283 | | } [INFO] [stdout] 284 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 280 ~ if let Some(idx) = tc_index [INFO] [stdout] 281 ~ && let Some(existing) = call_id_by_index.get(&idx) { [INFO] [stdout] 282 | call_id = existing.clone(); [INFO] [stdout] 283 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:286:17 [INFO] [stdout] | [INFO] [stdout] 286 | / if call_id.is_empty() && tool_calls.len() == 1 { [INFO] [stdout] 287 | | if let Some(last) = call_order.last() { [INFO] [stdout] 288 | | call_id = last.clone(); [INFO] [stdout] 289 | | } [INFO] [stdout] 290 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 286 ~ if call_id.is_empty() && tool_calls.len() == 1 [INFO] [stdout] 287 ~ && let Some(last) = call_order.last() { [INFO] [stdout] 288 | call_id = last.clone(); [INFO] [stdout] 289 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:291:17 [INFO] [stdout] | [INFO] [stdout] 291 | / if call_id.is_empty() { [INFO] [stdout] 292 | | if let Some(existing) = call_order.get(tool_call_pos) { [INFO] [stdout] 293 | | call_id = existing.clone(); [INFO] [stdout] 294 | | } [INFO] [stdout] 295 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 291 ~ if call_id.is_empty() [INFO] [stdout] 292 ~ && let Some(existing) = call_order.get(tool_call_pos) { [INFO] [stdout] 293 | call_id = existing.clone(); [INFO] [stdout] 294 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:543:1 [INFO] [stdout] | [INFO] [stdout] 543 | / fn build_assistant_item( [INFO] [stdout] 544 | | assistant_message_phase: Option, [INFO] [stdout] 545 | | text_part_index: Option, [INFO] [stdout] 546 | | output_text: &str, [INFO] [stdout] ... | [INFO] [stdout] 554 | | tool_part_index_by_call_id: &HashMap, [INFO] [stdout] 555 | | ) -> Item { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/urp/stream_decode/openai_chat.rs:577:1 [INFO] [stdout] | [INFO] [stdout] 577 | / fn sorted_parts( [INFO] [stdout] 578 | | text_part_index: Option, [INFO] [stdout] 579 | | output_text: &str, [INFO] [stdout] 580 | | reasoning_part_index: Option, [INFO] [stdout] ... | [INFO] [stdout] 587 | | tool_part_index_by_call_id: &HashMap, [INFO] [stdout] 588 | | ) -> Vec<(u32, Part)> { [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / if ev.event == "response.output_text.delta" { [INFO] [stdout] 85 | | if let Some(text) = data_val.get("delta").and_then(|v| v.as_str()) { [INFO] [stdout] 86 | | let output_index = data_val [INFO] [stdout] 87 | | .get("output_index") [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 84 ~ if ev.event == "response.output_text.delta" [INFO] [stdout] 85 ~ && let Some(text) = data_val.get("delta").and_then(|v| v.as_str()) { [INFO] [stdout] 86 | let output_index = data_val [INFO] [stdout] ... [INFO] [stdout] 94 | saw_text_delta = true; [INFO] [stdout] 95 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | / if ev.event == "response.reasoning.delta" { [INFO] [stdout] 98 | | if let Some(delta) = data_val [INFO] [stdout] 99 | | .get("delta") [INFO] [stdout] 100 | | .and_then(|v| v.as_str()) [INFO] [stdout] ... | [INFO] [stdout] 105 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 97 ~ if ev.event == "response.reasoning.delta" [INFO] [stdout] 98 ~ && let Some(delta) = data_val [INFO] [stdout] 99 | .get("delta") [INFO] [stdout] ... [INFO] [stdout] 103 | reasoning_text.push_str(delta); [INFO] [stdout] 104 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / if ev.event == "response.reasoning.done" { [INFO] [stdout] 107 | | if let Some(text) = data_val [INFO] [stdout] 108 | | .get("text") [INFO] [stdout] 109 | | .and_then(|v| v.as_str()) [INFO] [stdout] ... | [INFO] [stdout] 116 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 106 ~ if ev.event == "response.reasoning.done" [INFO] [stdout] 107 ~ && let Some(text) = data_val [INFO] [stdout] 108 | .get("text") [INFO] [stdout] ... [INFO] [stdout] 114 | } [INFO] [stdout] 115 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | / if let Some(text) = data_val [INFO] [stdout] 108 | | .get("text") [INFO] [stdout] 109 | | .and_then(|v| v.as_str()) [INFO] [stdout] 110 | | .or_else(|| data_val.get("delta").and_then(|v| v.as_str())) [INFO] [stdout] ... | [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 110 ~ .or_else(|| data_val.get("delta").and_then(|v| v.as_str())) [INFO] [stdout] 111 ~ && reasoning_text.is_empty() { [INFO] [stdout] 112 | reasoning_text = text.to_string(); [INFO] [stdout] 113 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | / if ev.event == "response.reasoning_summary_text.delta" { [INFO] [stdout] 118 | | if let Some(delta) = data_val [INFO] [stdout] 119 | | .get("delta") [INFO] [stdout] 120 | | .and_then(|v| v.as_str()) [INFO] [stdout] ... | [INFO] [stdout] 125 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 117 ~ if ev.event == "response.reasoning_summary_text.delta" [INFO] [stdout] 118 ~ && let Some(delta) = data_val [INFO] [stdout] 119 | .get("delta") [INFO] [stdout] ... [INFO] [stdout] 123 | reasoning_summary_text.push_str(delta); [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:220:17 [INFO] [stdout] | [INFO] [stdout] 220 | / if let Some(entry) = calls.get_mut(call_id.as_str()) { [INFO] [stdout] 221 | | if entry.1.is_empty() && !args.is_empty() { [INFO] [stdout] 222 | | entry.1 = args.to_string(); [INFO] [stdout] 223 | | } [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 220 ~ if let Some(entry) = calls.get_mut(call_id.as_str()) [INFO] [stdout] 221 ~ && entry.1.is_empty() && !args.is_empty() { [INFO] [stdout] 222 | entry.1 = args.to_string(); [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:262:20 [INFO] [stdout] | [INFO] [stdout] 262 | } else if item.get("type").and_then(|v| v.as_str()) == Some("message") [INFO] [stdout] | ____________________^ [INFO] [stdout] 263 | | && !saw_text_delta [INFO] [stdout] 264 | | { [INFO] [stdout] 265 | | if let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) { [INFO] [stdout] ... | [INFO] [stdout] 277 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 263 ~ && !saw_text_delta [INFO] [stdout] 264 ~ && let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) { [INFO] [stdout] 265 | let text = extract_responses_message_text(item); [INFO] [stdout] ... [INFO] [stdout] 274 | } [INFO] [stdout] 275 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:1102:30 [INFO] [stdout] | [INFO] [stdout] 1102 | fn output_text_delta_content<'a>(data_val: &'a Value) -> &'a str { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 1102 - fn output_text_delta_content<'a>(data_val: &'a Value) -> &'a str { [INFO] [stdout] 1102 + fn output_text_delta_content(data_val: &Value) -> &str { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:1127:5 [INFO] [stdout] | [INFO] [stdout] 1127 | / if let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) { [INFO] [stdout] 1128 | | if let Some(phase) = message_phases_by_output_index.get(&idx) { [INFO] [stdout] 1129 | | extra [INFO] [stdout] 1130 | | .entry("phase".to_string()) [INFO] [stdout] ... | [INFO] [stdout] 1133 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1127 ~ if let Some(idx) = data_val.get("output_index").and_then(|v| v.as_u64()) [INFO] [stdout] 1128 ~ && let Some(phase) = message_phases_by_output_index.get(&idx) { [INFO] [stdout] 1129 | extra [INFO] [stdout] 1130 | .entry("phase".to_string()) [INFO] [stdout] 1131 | .or_insert_with(|| json!(phase)); [INFO] [stdout] 1132 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/urp/stream_decode/openai_responses.rs:1338:1 [INFO] [stdout] | [INFO] [stdout] 1338 | / fn build_accumulated_output_items( [INFO] [stdout] 1339 | | reasoning_text: &str, [INFO] [stdout] 1340 | | reasoning_summary_text: &str, [INFO] [stdout] 1341 | | reasoning_sig: &str, [INFO] [stdout] ... | [INFO] [stdout] 1347 | | call_ids_by_output_index: &HashMap, [INFO] [stdout] 1348 | | ) -> Vec { [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:305:29 [INFO] [stdout] | [INFO] [stdout] 305 | ... &content, [INFO] [stdout] | ^^^^^^^^ help: change this to: `content` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:311:21 [INFO] [stdout] | [INFO] [stdout] 311 | / if let Some(signature) = encrypted [INFO] [stdout] 312 | | .as_ref() [INFO] [stdout] 313 | | .and_then(Value::as_str) [INFO] [stdout] 314 | | .filter(|signature| !signature.is_empty()) [INFO] [stdout] ... | [INFO] [stdout] 331 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 314 ~ .filter(|signature| !signature.is_empty()) [INFO] [stdout] 315 ~ && block_state.sent_thinking { [INFO] [stdout] 316 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 328 | block_state.sent_signature = true; [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:341:25 [INFO] [stdout] | [INFO] [stdout] 341 | / if !block_state.sent_thinking { [INFO] [stdout] 342 | | if let Some(content) = reasoning_display_text(&part) { [INFO] [stdout] 343 | | send_messages_delta_string( [INFO] [stdout] 344 | | &tx, [INFO] [stdout] ... | [INFO] [stdout] 356 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 341 ~ if !block_state.sent_thinking [INFO] [stdout] 342 ~ && let Some(content) = reasoning_display_text(&part) { [INFO] [stdout] 343 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 354 | .await?; [INFO] [stdout] 355 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | / if !block_state.sent_signature { [INFO] [stdout] 358 | | if let Some(signature) = encrypted [INFO] [stdout] 359 | | .as_ref() [INFO] [stdout] 360 | | .and_then(Value::as_str) [INFO] [stdout] ... | [INFO] [stdout] 376 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 357 ~ if !block_state.sent_signature [INFO] [stdout] 358 ~ && let Some(signature) = encrypted [INFO] [stdout] 359 | .as_ref() [INFO] [stdout] ... [INFO] [stdout] 374 | .await?; [INFO] [stdout] 375 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:467:6 [INFO] [stdout] | [INFO] [stdout] 467 | ) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ the `Err`-variant is at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::AppError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | / if !content.is_empty() { [INFO] [stdout] 500 | | send_messages_delta_string( [INFO] [stdout] 501 | | tx, [INFO] [stdout] 502 | | json!({ [INFO] [stdout] ... | [INFO] [stdout] 511 | | .await?; [INFO] [stdout] 512 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 498 ~ Part::Text { content, .. } | Part::Refusal { content, .. } [INFO] [stdout] 499 ~ if !content.is_empty() => { [INFO] [stdout] 500 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 511 | .await?; [INFO] [stdout] 512 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/stream_encode/anthropic.rs:553:13 [INFO] [stdout] | [INFO] [stdout] 553 | / if !arguments.is_empty() { [INFO] [stdout] 554 | | send_messages_delta_string( [INFO] [stdout] 555 | | tx, [INFO] [stdout] 556 | | json!({ [INFO] [stdout] ... | [INFO] [stdout] 565 | | .await?; [INFO] [stdout] 566 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 552 ~ Part::ToolCall { arguments, .. } [INFO] [stdout] 553 ~ if !arguments.is_empty() => { [INFO] [stdout] 554 | send_messages_delta_string( [INFO] [stdout] ... [INFO] [stdout] 565 | .await?; [INFO] [stdout] 566 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/urp/stream_encode/openai_chat.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | / ... if !content.is_empty() { [INFO] [stdout] 162 | | ... send_chat_chunk_string( [INFO] [stdout] 163 | | ... &tx, [INFO] [stdout] 164 | | ... &id, [INFO] [stdout] ... | [INFO] [stdout] 172 | | ... .await?; [INFO] [stdout] 173 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 160 ~ Part::Text { content, .. } | Part::Refusal { content, .. } [INFO] [stdout] 161 ~ if !content.is_empty() => { [INFO] [stdout] 162 | send_chat_chunk_string( [INFO] [stdout] ... [INFO] [stdout] 172 | .await?; [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/users/store.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | impl UserStore { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_encode/openai_responses.rs:1700:5 [INFO] [stdout] | [INFO] [stdout] 1700 | / if content.len() == 1 { [INFO] [stdout] 1701 | | if let ToolResultContent::Text { text } = &content[0] { [INFO] [stdout] 1702 | | return Value::String(text.clone()); [INFO] [stdout] 1703 | | } [INFO] [stdout] 1704 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1700 ~ if content.len() == 1 [INFO] [stdout] 1701 ~ && let ToolResultContent::Text { text } = &content[0] { [INFO] [stdout] 1702 | return Value::String(text.clone()); [INFO] [stdout] 1703 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/urp/stream_helpers.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | / pub(crate) async fn send_chat_chunk_string( [INFO] [stdout] 57 | | tx: &mpsc::Sender, [INFO] [stdout] 58 | | id: &str, [INFO] [stdout] 59 | | created: i64, [INFO] [stdout] ... | [INFO] [stdout] 64 | | max_frame_length: Option, [INFO] [stdout] 65 | | ) -> AppResult<()> { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/users/store.rs:722:9 [INFO] [stdout] | [INFO] [stdout] 722 | / if let Some(expires_at) = api_key.expires_at { [INFO] [stdout] 723 | | if expires_at < Utc::now() { [INFO] [stdout] 724 | | return Ok(None); [INFO] [stdout] 725 | | } [INFO] [stdout] 726 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 722 ~ if let Some(expires_at) = api_key.expires_at [INFO] [stdout] 723 ~ && expires_at < Utc::now() { [INFO] [stdout] 724 | return Ok(None); [INFO] [stdout] 725 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:375:25 [INFO] [stdout] | [INFO] [stdout] 375 | / if let Some(part_obj) = part.as_object_mut() { [INFO] [stdout] 376 | | if part_obj.get("type").and_then(|v| v.as_str()) == Some("output_text") { [INFO] [stdout] 377 | | part_obj.insert("text".to_string(), Value::String(String::new())); [INFO] [stdout] 378 | | } [INFO] [stdout] 379 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 375 ~ if let Some(part_obj) = part.as_object_mut() [INFO] [stdout] 376 ~ && part_obj.get("type").and_then(|v| v.as_str()) == Some("output_text") { [INFO] [stdout] 377 | part_obj.insert("text".to_string(), Value::String(String::new())); [INFO] [stdout] 378 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | / if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") { [INFO] [stdout] 429 | | if let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 430 | | if !t.is_empty() { [INFO] [stdout] 431 | | parts.push(t); [INFO] [stdout] ... | [INFO] [stdout] 434 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 428 ~ if s.get("type").and_then(|v| v.as_str()) == Some("summary_text") [INFO] [stdout] 429 ~ && let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 430 | if !t.is_empty() { [INFO] [stdout] 431 | parts.push(t); [INFO] [stdout] 432 | } [INFO] [stdout] 433 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:429:17 [INFO] [stdout] | [INFO] [stdout] 429 | / if let Some(t) = s.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 430 | | if !t.is_empty() { [INFO] [stdout] 431 | | parts.push(t); [INFO] [stdout] 432 | | } [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 429 ~ if let Some(t) = s.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 430 ~ && !t.is_empty() { [INFO] [stdout] 431 | parts.push(t); [INFO] [stdout] 432 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:488:13 [INFO] [stdout] | [INFO] [stdout] 488 | / if let Some(t) = obj.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 489 | | if !t.is_empty() { [INFO] [stdout] 490 | | text_out.push(t.to_string()); [INFO] [stdout] 491 | | } [INFO] [stdout] 492 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 488 ~ if let Some(t) = obj.get("text").and_then(|v| v.as_str()) [INFO] [stdout] 489 ~ && !t.is_empty() { [INFO] [stdout] 490 | text_out.push(t.to_string()); [INFO] [stdout] 491 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:504:13 [INFO] [stdout] | [INFO] [stdout] 504 | / if let Some(summary) = obj.get("summary").and_then(|v| v.as_str()) { [INFO] [stdout] 505 | | if !summary.is_empty() { [INFO] [stdout] 506 | | summary_out.push(summary.to_string()); [INFO] [stdout] 507 | | } [INFO] [stdout] 508 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 504 ~ if let Some(summary) = obj.get("summary").and_then(|v| v.as_str()) [INFO] [stdout] 505 ~ && !summary.is_empty() { [INFO] [stdout] 506 | summary_out.push(summary.to_string()); [INFO] [stdout] 507 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | / if text_parts.is_empty() { [INFO] [stdout] 531 | | if let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 532 | | if !reasoning.is_empty() { [INFO] [stdout] 533 | | text_parts.push(reasoning.to_string()); [INFO] [stdout] ... | [INFO] [stdout] 536 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 530 ~ if text_parts.is_empty() [INFO] [stdout] 531 ~ && let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 532 | if !reasoning.is_empty() { [INFO] [stdout] 533 | text_parts.push(reasoning.to_string()); [INFO] [stdout] 534 | } [INFO] [stdout] 535 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:531:9 [INFO] [stdout] | [INFO] [stdout] 531 | / if let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) { [INFO] [stdout] 532 | | if !reasoning.is_empty() { [INFO] [stdout] 533 | | text_parts.push(reasoning.to_string()); [INFO] [stdout] 534 | | } [INFO] [stdout] 535 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 531 ~ if let Some(reasoning) = delta.get("reasoning").and_then(|v| v.as_str()) [INFO] [stdout] 532 ~ && !reasoning.is_empty() { [INFO] [stdout] 533 | text_parts.push(reasoning.to_string()); [INFO] [stdout] 534 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:538:5 [INFO] [stdout] | [INFO] [stdout] 538 | / if let Some(reasoning) = delta.get("reasoning_content").and_then(|v| v.as_str()) { [INFO] [stdout] 539 | | if !reasoning.is_empty() { [INFO] [stdout] 540 | | text_parts.push(reasoning.to_string()); [INFO] [stdout] 541 | | } [INFO] [stdout] 542 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 538 ~ if let Some(reasoning) = delta.get("reasoning_content").and_then(|v| v.as_str()) [INFO] [stdout] 539 ~ && !reasoning.is_empty() { [INFO] [stdout] 540 | text_parts.push(reasoning.to_string()); [INFO] [stdout] 541 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 543 | / if let Some(sig) = delta.get("reasoning_opaque").and_then(|v| v.as_str()) { [INFO] [stdout] 544 | | if !sig.is_empty() { [INFO] [stdout] 545 | | sig_parts.push(sig.to_string()); [INFO] [stdout] 546 | | } [INFO] [stdout] 547 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 543 ~ if let Some(sig) = delta.get("reasoning_opaque").and_then(|v| v.as_str()) [INFO] [stdout] 544 ~ && !sig.is_empty() { [INFO] [stdout] 545 | sig_parts.push(sig.to_string()); [INFO] [stdout] 546 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/urp/stream_helpers.rs:584:13 [INFO] [stdout] | [INFO] [stdout] 584 | / if part.get("type").and_then(|v| v.as_str()) == Some("output_text") { [INFO] [stdout] 585 | | if let Some(text) = part.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 586 | | out.push_str(text); [INFO] [stdout] 587 | | } [INFO] [stdout] 588 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 584 ~ if part.get("type").and_then(|v| v.as_str()) == Some("output_text") [INFO] [stdout] 585 ~ && let Some(text) = part.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 586 | out.push_str(text); [INFO] [stdout] 587 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/users/request_logs.rs:437:28 [INFO] [stdout] | [INFO] [stdout] 437 | ... let mut rows_sql = format!(r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream... [INFO] [stdout] | __________________________^ [INFO] [stdout] 438 | | ... rl.channel_id, rl.is_stream, [INFO] [stdout] 439 | | ... rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 440 | | ... rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] ... | [INFO] [stdout] 446 | | ... FROM request_logs rl [INFO] [stdout] 447 | | ... WHERE rl.user_id = $1"#); [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 437 ~ let mut rows_sql = r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream_model, [INFO] [stdout] 438 + rl.channel_id, rl.is_stream, [INFO] [stdout] 439 + rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 440 + rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] 441 + rl.accepted_prediction_tokens, rl.rejected_prediction_tokens, [INFO] [stdout] 442 + rl.provider_multiplier, rl.charge_nano_usd, rl.status, [INFO] [stdout] 443 + rl.usage_breakdown_json, rl.billing_breakdown_json, [INFO] [stdout] 444 + rl.error_code, rl.error_message, rl.error_http_status, [INFO] [stdout] 445 + rl.duration_ms, rl.ttfb_ms, rl.request_ip, rl.reasoning_effort, rl.request_kind, rl.created_at [INFO] [stdout] 446 + FROM request_logs rl [INFO] [stdout] 447 ~ WHERE rl.user_id = $1"#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/users/request_logs.rs:576:28 [INFO] [stdout] | [INFO] [stdout] 576 | ... let mut rows_sql = format!(r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream... [INFO] [stdout] | __________________________^ [INFO] [stdout] 577 | | ... rl.channel_id, rl.is_stream, [INFO] [stdout] 578 | | ... rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 579 | | ... rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] ... | [INFO] [stdout] 585 | | ... FROM request_logs rl [INFO] [stdout] 586 | | ... WHERE 1 = 1"#); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 576 ~ let mut rows_sql = r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream_model, [INFO] [stdout] 577 + rl.channel_id, rl.is_stream, [INFO] [stdout] 578 + rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 579 + rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] 580 + rl.accepted_prediction_tokens, rl.rejected_prediction_tokens, [INFO] [stdout] 581 + rl.provider_multiplier, rl.charge_nano_usd, rl.status, [INFO] [stdout] 582 + rl.usage_breakdown_json, rl.billing_breakdown_json, [INFO] [stdout] 583 + rl.error_code, rl.error_message, rl.error_http_status, [INFO] [stdout] 584 + rl.duration_ms, rl.ttfb_ms, rl.request_ip, rl.reasoning_effort, rl.request_kind, rl.created_at [INFO] [stdout] 585 + FROM request_logs rl [INFO] [stdout] 586 ~ WHERE 1 = 1"#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:658:37 [INFO] [stdout] | [INFO] [stdout] 658 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 659 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 660 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:660:20 [INFO] [stdout] | [INFO] [stdout] 660 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 661 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 662 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:719:37 [INFO] [stdout] | [INFO] [stdout] 719 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 720 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 721 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:721:20 [INFO] [stdout] | [INFO] [stdout] 721 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 722 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 723 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:766:37 [INFO] [stdout] | [INFO] [stdout] 766 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 767 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 768 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:768:20 [INFO] [stdout] | [INFO] [stdout] 768 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 769 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 770 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:817:37 [INFO] [stdout] | [INFO] [stdout] 817 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 818 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 819 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:819:20 [INFO] [stdout] | [INFO] [stdout] 819 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 820 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 821 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/users/store.rs:722:9 [INFO] [stdout] | [INFO] [stdout] 722 | / if let Some(expires_at) = api_key.expires_at { [INFO] [stdout] 723 | | if expires_at < Utc::now() { [INFO] [stdout] 724 | | return Ok(None); [INFO] [stdout] 725 | | } [INFO] [stdout] 726 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 722 ~ if let Some(expires_at) = api_key.expires_at [INFO] [stdout] 723 ~ && expires_at < Utc::now() { [INFO] [stdout] 724 | return Ok(None); [INFO] [stdout] 725 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/users/request_logs.rs:437:28 [INFO] [stdout] | [INFO] [stdout] 437 | ... let mut rows_sql = format!(r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream... [INFO] [stdout] | __________________________^ [INFO] [stdout] 438 | | ... rl.channel_id, rl.is_stream, [INFO] [stdout] 439 | | ... rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 440 | | ... rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] ... | [INFO] [stdout] 446 | | ... FROM request_logs rl [INFO] [stdout] 447 | | ... WHERE rl.user_id = $1"#); [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 437 ~ let mut rows_sql = r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream_model, [INFO] [stdout] 438 + rl.channel_id, rl.is_stream, [INFO] [stdout] 439 + rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 440 + rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] 441 + rl.accepted_prediction_tokens, rl.rejected_prediction_tokens, [INFO] [stdout] 442 + rl.provider_multiplier, rl.charge_nano_usd, rl.status, [INFO] [stdout] 443 + rl.usage_breakdown_json, rl.billing_breakdown_json, [INFO] [stdout] 444 + rl.error_code, rl.error_message, rl.error_http_status, [INFO] [stdout] 445 + rl.duration_ms, rl.ttfb_ms, rl.request_ip, rl.reasoning_effort, rl.request_kind, rl.created_at [INFO] [stdout] 446 + FROM request_logs rl [INFO] [stdout] 447 ~ WHERE rl.user_id = $1"#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/users/request_logs.rs:576:28 [INFO] [stdout] | [INFO] [stdout] 576 | ... let mut rows_sql = format!(r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream... [INFO] [stdout] | __________________________^ [INFO] [stdout] 577 | | ... rl.channel_id, rl.is_stream, [INFO] [stdout] 578 | | ... rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 579 | | ... rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] ... | [INFO] [stdout] 585 | | ... FROM request_logs rl [INFO] [stdout] 586 | | ... WHERE 1 = 1"#); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 576 ~ let mut rows_sql = r#"SELECT rl.id, rl.request_id, rl.user_id, rl.api_key_id, rl.model, rl.provider_id, rl.upstream_model, [INFO] [stdout] 577 + rl.channel_id, rl.is_stream, [INFO] [stdout] 578 + rl.input_tokens, rl.output_tokens, rl.cache_read_tokens, rl.cache_creation_tokens, [INFO] [stdout] 579 + rl.tool_prompt_tokens, rl.reasoning_tokens, [INFO] [stdout] 580 + rl.accepted_prediction_tokens, rl.rejected_prediction_tokens, [INFO] [stdout] 581 + rl.provider_multiplier, rl.charge_nano_usd, rl.status, [INFO] [stdout] 582 + rl.usage_breakdown_json, rl.billing_breakdown_json, [INFO] [stdout] 583 + rl.error_code, rl.error_message, rl.error_http_status, [INFO] [stdout] 584 + rl.duration_ms, rl.ttfb_ms, rl.request_ip, rl.reasoning_effort, rl.request_kind, rl.created_at [INFO] [stdout] 585 + FROM request_logs rl [INFO] [stdout] 586 ~ WHERE 1 = 1"#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:658:37 [INFO] [stdout] | [INFO] [stdout] 658 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 659 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 660 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:660:20 [INFO] [stdout] | [INFO] [stdout] 660 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 661 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 662 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:719:37 [INFO] [stdout] | [INFO] [stdout] 719 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 720 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 721 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:721:20 [INFO] [stdout] | [INFO] [stdout] 721 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 722 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 723 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:766:37 [INFO] [stdout] | [INFO] [stdout] 766 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 767 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 768 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:768:20 [INFO] [stdout] | [INFO] [stdout] 768 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 769 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 770 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/users/request_logs.rs:817:37 [INFO] [stdout] | [INFO] [stdout] 817 | time_col = if is_sqlite { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 818 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 819 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/users/request_logs.rs:819:20 [INFO] [stdout] | [INFO] [stdout] 819 | } else { [INFO] [stdout] | ____________________^ [INFO] [stdout] 820 | | "rl.created_at_unix_ms".to_string() [INFO] [stdout] 821 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> tests/api.rs:67:49 [INFO] [stdout] | [INFO] [stdout] 67 | axum::extract::State(captured_headers): axum::extract::State< [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 68 | | Arc>>, [INFO] [stdout] 69 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | / if let Some(v) = headers [INFO] [stdout] 74 | | .get("anthropic-version") [INFO] [stdout] 75 | | .and_then(|h| h.to_str().ok()) [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 75 ~ .and_then(|h| h.to_str().ok()) [INFO] [stdout] 76 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 77 | lock.push(("anthropic-version".to_string(), v.to_string())); [INFO] [stdout] 78 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | / if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) { [INFO] [stdout] 82 | | if let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 83 | | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 84 | | } [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 81 ~ if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) [INFO] [stdout] 82 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 83 | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | / if item.get("type").and_then(|v| v.as_str()) == Some("function_call_output") { [INFO] [stdout] 116 | | if let Some(output) = item.get("output") { [INFO] [stdout] 117 | | let summary = summarize_multipart_content(output); [INFO] [stdout] 118 | | if !summary.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 115 ~ if item.get("type").and_then(|v| v.as_str()) == Some("function_call_output") [INFO] [stdout] 116 ~ && let Some(output) = item.get("output") { [INFO] [stdout] 117 | let summary = summarize_multipart_content(output); [INFO] [stdout] ... [INFO] [stdout] 120 | } [INFO] [stdout] 121 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> tests/api.rs:542:49 [INFO] [stdout] | [INFO] [stdout] 542 | axum::extract::State(captured_headers): axum::extract::State< [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 543 | | Arc>>, [INFO] [stdout] 544 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:548:9 [INFO] [stdout] | [INFO] [stdout] 548 | / if let Some(v) = headers [INFO] [stdout] 549 | | .get("anthropic-version") [INFO] [stdout] 550 | | .and_then(|h| h.to_str().ok()) [INFO] [stdout] ... | [INFO] [stdout] 555 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 550 ~ .and_then(|h| h.to_str().ok()) [INFO] [stdout] 551 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 552 | lock.push(("anthropic-version".to_string(), v.to_string())); [INFO] [stdout] 553 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | / if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) { [INFO] [stdout] 557 | | if let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 558 | | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 559 | | } [INFO] [stdout] 560 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 556 ~ if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) [INFO] [stdout] 557 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 558 | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 559 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:600:13 [INFO] [stdout] | [INFO] [stdout] 600 | / if m.get("role").and_then(|v| v.as_str()) == Some("tool") { [INFO] [stdout] 601 | | if let Some(c) = m.get("content").and_then(|v| v.as_str()) { [INFO] [stdout] 602 | | tool_outputs.push(c.to_string()); [INFO] [stdout] 603 | | } [INFO] [stdout] 604 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 600 ~ if m.get("role").and_then(|v| v.as_str()) == Some("tool") [INFO] [stdout] 601 ~ && let Some(c) = m.get("content").and_then(|v| v.as_str()) { [INFO] [stdout] 602 | tool_outputs.push(c.to_string()); [INFO] [stdout] 603 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> tests/api.rs:944:49 [INFO] [stdout] | [INFO] [stdout] 944 | axum::extract::State(captured_headers): axum::extract::State< [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 945 | | Arc>>, [INFO] [stdout] 946 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:950:9 [INFO] [stdout] | [INFO] [stdout] 950 | / if let Some(v) = headers [INFO] [stdout] 951 | | .get("anthropic-version") [INFO] [stdout] 952 | | .and_then(|h| h.to_str().ok()) [INFO] [stdout] ... | [INFO] [stdout] 957 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 952 ~ .and_then(|h| h.to_str().ok()) [INFO] [stdout] 953 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 954 | lock.push(("anthropic-version".to_string(), v.to_string())); [INFO] [stdout] 955 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:958:9 [INFO] [stdout] | [INFO] [stdout] 958 | / if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) { [INFO] [stdout] 959 | | if let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 960 | | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 961 | | } [INFO] [stdout] 962 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 958 ~ if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) [INFO] [stdout] 959 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 960 | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 961 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:995:21 [INFO] [stdout] | [INFO] [stdout] 995 | / if b.get("type").and_then(|v| v.as_str()) == Some("tool_result") { [INFO] [stdout] 996 | | if let Some(content) = b.get("content") { [INFO] [stdout] 997 | | let summary = summarize_multipart_content(content); [INFO] [stdout] 998 | | if !summary.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 1002 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 995 ~ if b.get("type").and_then(|v| v.as_str()) == Some("tool_result") [INFO] [stdout] 996 ~ && let Some(content) = b.get("content") { [INFO] [stdout] 997 | let summary = summarize_multipart_content(content); [INFO] [stdout] ... [INFO] [stdout] 1000 | } [INFO] [stdout] 1001 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `idx` is used as a loop counter [INFO] [stdout] --> tests/api.rs:1052:17 [INFO] [stdout] | [INFO] [stdout] 1052 | for (call_id, name, args) in calls { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (idx, (call_id, name, args)) in (1..).zip(calls.into_iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> tests/api.rs:1247:49 [INFO] [stdout] | [INFO] [stdout] 1247 | axum::extract::State(captured_headers): axum::extract::State< [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 1248 | | Arc>>, [INFO] [stdout] 1249 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:1254:9 [INFO] [stdout] | [INFO] [stdout] 1254 | / if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) { [INFO] [stdout] 1255 | | if let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 1256 | | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 1257 | | } [INFO] [stdout] 1258 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1254 ~ if let Some(v) = headers.get("x-goog-api-key").and_then(|h| h.to_str().ok()) [INFO] [stdout] 1255 ~ && let Ok(mut lock) = captured_headers.lock() { [INFO] [stdout] 1256 | lock.push(("x-goog-api-key".to_string(), v.to_string())); [INFO] [stdout] 1257 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:1396:13 [INFO] [stdout] | [INFO] [stdout] 1396 | / if block.get("type").and_then(|v| v.as_str()) == Some("text") { [INFO] [stdout] 1397 | | if let Some(t) = block.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 1398 | | out.push_str(t); [INFO] [stdout] 1399 | | } [INFO] [stdout] 1400 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1396 ~ if block.get("type").and_then(|v| v.as_str()) == Some("text") [INFO] [stdout] 1397 ~ && let Some(t) = block.get("text").and_then(|v| v.as_str()) { [INFO] [stdout] 1398 | out.push_str(t); [INFO] [stdout] 1399 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:3630:9 [INFO] [stdout] | [INFO] [stdout] 3630 | / if let Some(reason) = v [INFO] [stdout] 3631 | | .get("choices") [INFO] [stdout] 3632 | | .and_then(|v| v.as_array()) [INFO] [stdout] 3633 | | .and_then(|arr| arr.first()) [INFO] [stdout] ... | [INFO] [stdout] 3640 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 3635 ~ .and_then(|v| v.as_str()) [INFO] [stdout] 3636 ~ && !reason.is_empty() { [INFO] [stdout] 3637 | finish_reasons.push(reason.to_string()); [INFO] [stdout] 3638 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:3686:9 [INFO] [stdout] | [INFO] [stdout] 3686 | / if let Some(reason) = v [INFO] [stdout] 3687 | | .get("choices") [INFO] [stdout] 3688 | | .and_then(|v| v.as_array()) [INFO] [stdout] 3689 | | .and_then(|arr| arr.first()) [INFO] [stdout] ... | [INFO] [stdout] 3696 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 3691 ~ .and_then(|v| v.as_str()) [INFO] [stdout] 3692 ~ && !reason.is_empty() { [INFO] [stdout] 3693 | finish_reasons.push(reason.to_string()); [INFO] [stdout] 3694 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:3746:9 [INFO] [stdout] | [INFO] [stdout] 3746 | / if let Some(reason) = v [INFO] [stdout] 3747 | | .get("choices") [INFO] [stdout] 3748 | | .and_then(|v| v.as_array()) [INFO] [stdout] 3749 | | .and_then(|arr| arr.first()) [INFO] [stdout] ... | [INFO] [stdout] 3756 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 3751 ~ .and_then(|v| v.as_str()) [INFO] [stdout] 3752 ~ && !reason.is_empty() { [INFO] [stdout] 3753 | finish_reasons.push(reason.to_string()); [INFO] [stdout] 3754 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:4422:9 [INFO] [stdout] | [INFO] [stdout] 4422 | / if let Some(payload) = line.strip_prefix("data: ") { [INFO] [stdout] 4423 | | if current_event == "response.output_text.delta" { [INFO] [stdout] 4424 | | assert!( [INFO] [stdout] 4425 | | payload.len() <= max_frame_length, [INFO] [stdout] ... | [INFO] [stdout] 4436 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4422 ~ if let Some(payload) = line.strip_prefix("data: ") [INFO] [stdout] 4423 ~ && current_event == "response.output_text.delta" { [INFO] [stdout] 4424 | assert!( [INFO] [stdout] ... [INFO] [stdout] 4434 | reconstructed.push_str(piece); [INFO] [stdout] 4435 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:7152:13 [INFO] [stdout] | [INFO] [stdout] 7152 | / if let Some(reason) = c.get("finish_reason").and_then(|v| v.as_str()) { [INFO] [stdout] 7153 | | if !reason.is_empty() { [INFO] [stdout] 7154 | | finish_reasons.push(reason.to_string()); [INFO] [stdout] 7155 | | } [INFO] [stdout] 7156 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 7152 ~ if let Some(reason) = c.get("finish_reason").and_then(|v| v.as_str()) [INFO] [stdout] 7153 ~ && !reason.is_empty() { [INFO] [stdout] 7154 | finish_reasons.push(reason.to_string()); [INFO] [stdout] 7155 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> tests/api.rs:7223:9 [INFO] [stdout] | [INFO] [stdout] 7223 | / if let Some(reason) = v [INFO] [stdout] 7224 | | .get("choices") [INFO] [stdout] 7225 | | .and_then(|v| v.as_array()) [INFO] [stdout] 7226 | | .and_then(|arr| arr.first()) [INFO] [stdout] ... | [INFO] [stdout] 7233 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 7228 ~ .and_then(|v| v.as_str()) [INFO] [stdout] 7229 ~ && !reason.is_empty() { [INFO] [stdout] 7230 | finish_reasons.push(reason.to_string()); [INFO] [stdout] 7231 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 34s [INFO] running `Command { std: "docker" "inspect" "312b849877d12a914c00e13f4bdf71be8dd1bd782a68afb677db682025c78480", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "312b849877d12a914c00e13f4bdf71be8dd1bd782a68afb677db682025c78480", kill_on_drop: false }` [INFO] [stdout] 312b849877d12a914c00e13f4bdf71be8dd1bd782a68afb677db682025c78480