[INFO] cloning repository https://github.com/Antonio7098/stageflow-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Antonio7098/stageflow-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAntonio7098%2Fstageflow-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAntonio7098%2Fstageflow-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c6b0a3777768be82e2b81626b6de0d04e6b53a07 [INFO] linting Antonio7098/stageflow-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAntonio7098%2Fstageflow-rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 31% (1783/5671) Updating files: 32% (1815/5671) Updating files: 33% (1872/5671) Updating files: 34% (1929/5671) Updating files: 35% (1985/5671) Updating files: 36% (2042/5671) Updating files: 37% (2099/5671) Updating files: 37% (2103/5671) Updating files: 38% (2155/5671) Updating files: 39% (2212/5671) Updating files: 39% (2244/5671) Updating files: 40% (2269/5671) Updating files: 41% (2326/5671) Updating files: 41% (2372/5671) Updating files: 42% (2382/5671) Updating files: 43% (2439/5671) Updating files: 43% (2442/5671) Updating files: 43% (2446/5671) Updating files: 44% (2496/5671) Updating files: 44% (2510/5671) Updating files: 45% (2552/5671) Updating files: 46% (2609/5671) Updating files: 47% (2666/5671) Updating files: 47% (2695/5671) Updating files: 47% (2697/5671) Updating files: 48% (2723/5671) Updating files: 49% (2779/5671) Updating files: 50% (2836/5671) Updating files: 51% (2893/5671) Updating files: 52% (2949/5671) Updating files: 52% (3000/5671) Updating files: 53% (3006/5671) Updating files: 54% (3063/5671) Updating files: 55% (3120/5671) Updating files: 56% (3176/5671) Updating files: 57% (3233/5671) Updating files: 57% (3289/5671) Updating files: 58% (3290/5671) Updating files: 59% (3346/5671) Updating files: 60% (3403/5671) Updating files: 61% (3460/5671) Updating files: 62% (3517/5671) Updating files: 63% (3573/5671) Updating files: 64% (3630/5671) Updating files: 65% (3687/5671) Updating files: 66% (3743/5671) Updating files: 66% (3779/5671) Updating files: 67% (3800/5671) Updating files: 68% (3857/5671) Updating files: 69% (3913/5671) Updating files: 70% (3970/5671) Updating files: 71% (4027/5671) Updating files: 72% (4084/5671) Updating files: 73% (4140/5671) Updating files: 74% (4197/5671) Updating files: 75% (4254/5671) Updating files: 75% (4302/5671) Updating files: 76% (4310/5671) Updating files: 77% (4367/5671) Updating files: 78% (4424/5671) Updating files: 79% (4481/5671) Updating files: 80% (4537/5671) Updating files: 81% (4594/5671) Updating files: 82% (4651/5671) Updating files: 83% (4707/5671) Updating files: 84% (4764/5671) Updating files: 85% (4821/5671) Updating files: 85% (4855/5671) Updating files: 86% (4878/5671) Updating files: 87% (4934/5671) Updating files: 88% (4991/5671) Updating files: 89% (5048/5671) Updating files: 90% (5104/5671) Updating files: 91% (5161/5671) Updating files: 92% (5218/5671) Updating files: 93% (5275/5671) Updating files: 94% (5331/5671) Updating files: 95% (5388/5671) Updating files: 96% (5445/5671) Updating files: 97% (5501/5671) Updating files: 98% (5558/5671) Updating files: 98% (5599/5671) Updating files: 99% (5615/5671) Updating files: 100% (5671/5671) Updating files: 100% (5671/5671), done. [INFO] started tweaking git repo https://github.com/Antonio7098/stageflow-rust [INFO] finished tweaking git repo https://github.com/Antonio7098/stageflow-rust [INFO] tweaked toml for git repo https://github.com/Antonio7098/stageflow-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Antonio7098/stageflow-rust 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/Antonio7098/stageflow-rust 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 tokio-test v0.4.5 [INFO] [stderr] Downloaded downcast v0.11.0 [INFO] [stderr] Downloaded dtoa v1.0.11 [INFO] [stderr] Downloaded fragile v2.0.1 [INFO] [stderr] Downloaded pyo3-macros v0.21.2 [INFO] [stderr] Downloaded mockall v0.13.1 [INFO] [stderr] Downloaded pretty_assertions v1.4.1 [INFO] [stderr] Downloaded mockall_derive v0.13.1 [INFO] [stderr] Downloaded pyo3-build-config v0.21.2 [INFO] [stderr] Downloaded pyo3-ffi v0.21.2 [INFO] [stderr] Downloaded pyo3-macros-backend v0.21.2 [INFO] [stderr] Downloaded scraper v0.20.0 [INFO] [stderr] Downloaded pyo3 v0.21.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 967afe8ac105a60e8ddb043383fc26ae49ba66e797d429b727cfba956459277d [INFO] running `Command { std: "docker" "start" "-a" "967afe8ac105a60e8ddb043383fc26ae49ba66e797d429b727cfba956459277d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "967afe8ac105a60e8ddb043383fc26ae49ba66e797d429b727cfba956459277d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "967afe8ac105a60e8ddb043383fc26ae49ba66e797d429b727cfba956459277d", kill_on_drop: false }` [INFO] [stdout] 967afe8ac105a60e8ddb043383fc26ae49ba66e797d429b727cfba956459277d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 906168dc2833927b0f83a14bc13ee9d7f262b98f0d1356e7b69c5af966e6c22b [INFO] running `Command { std: "docker" "start" "-a" "906168dc2833927b0f83a14bc13ee9d7f262b98f0d1356e7b69c5af966e6c22b", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling zerocopy v0.8.38 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling zerocopy-derive v0.8.38 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Compiling pyo3-build-config v0.21.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking phf_shared v0.11.3 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Checking mac v0.1.1 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Checking futf v0.1.5 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking dtoa v1.0.11 [INFO] [stderr] Checking tendril v0.4.3 [INFO] [stderr] Compiling html5ever v0.27.0 [INFO] [stderr] Checking string_cache v0.8.9 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Checking phf v0.10.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking servo_arc v0.3.0 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Checking getopts v0.2.24 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking ego-tree v0.6.3 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking chrono v0.4.43 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking uuid v1.20.0 [INFO] [stderr] Compiling mockall_derive v0.13.1 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking clap_lex v0.7.7 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Compiling pyo3-macros-backend v0.21.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking rustix v1.1.3 [INFO] [stderr] Checking clap_builder v4.5.57 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling pyo3-ffi v0.21.2 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling pyo3 v0.21.2 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking predicates v3.1.3 [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Checking unindent v0.2.4 [INFO] [stderr] Checking downcast v0.11.0 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking fragile v2.0.1 [INFO] [stderr] Checking pretty_assertions v1.4.1 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking tempfile v3.24.0 [INFO] [stderr] Checking clap v4.5.57 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking mockall v0.13.1 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking tokio-stream v0.1.18 [INFO] [stderr] Compiling pyo3-macros v0.21.2 [INFO] [stderr] Checking tokio-test v0.4.5 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling phf_generator v0.10.0 [INFO] [stderr] Compiling phf_codegen v0.10.0 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling selectors v0.25.0 [INFO] [stderr] Compiling markup5ever v0.12.1 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking cssparser v0.31.2 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking scraper v0.20.0 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking stageflow v0.1.0 (/opt/rustwide/workdir/stageflow) [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> stageflow/src/cancellation/token.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> stageflow/src/context/bags.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> stageflow/src/context/execution.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> stageflow/src/events/sink.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::StageKind` [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::core::StageKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> stageflow/src/context/bags.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> stageflow/src/context/execution.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PipelineSpec` and `StageSpec` [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::pipeline::{PipelineSpec, StageSpec}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> stageflow/src/testing/mocks.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> stageflow/src/tools/executor.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing::warn` [INFO] [stdout] --> stageflow/src/tools/executor.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use tracing::warn; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant else block [INFO] [stdout] --> stageflow/src/tools/undo.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | } else { [INFO] [stdout] | ______________^ [INFO] [stdout] 116 | | // Expired, remove it [INFO] [stdout] 117 | | entries.remove(&action_id); [INFO] [stdout] 118 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_else [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> stageflow/src/lib.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | clippy::pedantic, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::redundant_else)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: remove the `else` block and move the contents out [INFO] [stdout] | [INFO] [stdout] 115 ~ } [INFO] [stdout] 116 + // Expired, remove it [INFO] [stdout] 117 + entries.remove(&action_id); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DateTime` [INFO] [stdout] --> stageflow/src/websearch/models.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: long literal lacking separators [INFO] [stdout] --> stageflow/src/core/output_tests.rs:77:58 [INFO] [stdout] | [INFO] [stdout] 77 | .add_metadata("timestamp", serde_json::json!(1234567890)); [INFO] [stdout] | ^^^^^^^^^^ help: consider: `1_234_567_890` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> stageflow/src/lib.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | clippy::pedantic, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::unreadable_literal)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: long literal lacking separators [INFO] [stdout] --> stageflow/src/core/output_tests.rs:80:78 [INFO] [stdout] | [INFO] [stdout] 80 | assert_eq!(output.metadata.get("timestamp"), Some(&serde_json::json!(1234567890))); [INFO] [stdout] | ^^^^^^^^^^ help: consider: `1_234_567_890` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> stageflow/src/events/sink.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::StageKind` [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::core::StageKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicUsize` [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | use std::sync::atomic::AtomicUsize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> stageflow/src/pipeline/integration_tests.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> stageflow/src/testing/assertions.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PipelineSpec` and `StageSpec` [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::pipeline::{PipelineSpec, StageSpec}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing::warn` [INFO] [stdout] --> stageflow/src/tools/executor.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use tracing::warn; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PipelineContext` and `RunIdentity` [INFO] [stdout] --> stageflow/src/tools/executor.rs:243:46 [INFO] [stdout] | [INFO] [stdout] 243 | use crate::context::{DictContextAdapter, PipelineContext, RunIdentity}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant else block [INFO] [stdout] --> stageflow/src/tools/undo.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | } else { [INFO] [stdout] | ______________^ [INFO] [stdout] 116 | | // Expired, remove it [INFO] [stdout] 117 | | entries.remove(&action_id); [INFO] [stdout] 118 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_else [INFO] [stdout] = note: `#[warn(clippy::redundant_else)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: remove the `else` block and move the contents out [INFO] [stdout] | [INFO] [stdout] 115 ~ } [INFO] [stdout] 116 + // Expired, remove it [INFO] [stdout] 117 + entries.remove(&action_id); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: long literal lacking separators [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:259:35 [INFO] [stdout] | [INFO] [stdout] 259 | detect_unix_precision(1696512000.0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ help: consider: `1_696_512_000.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: long literal lacking separators [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:267:35 [INFO] [stdout] | [INFO] [stdout] 267 | detect_unix_precision(1696512000000.0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider: `1_696_512_000_000.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: long literal lacking separators [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:275:35 [INFO] [stdout] | [INFO] [stdout] 275 | detect_unix_precision(1696512000000000.0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider: `1_696_512_000_000_000.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DateTime` [INFO] [stdout] --> stageflow/src/websearch/models.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Tool` [INFO] [stdout] --> stageflow/src/tools/executor.rs:3:30 [INFO] [stdout] | [INFO] [stdout] 3 | use super::{ApprovalService, Tool, ToolDefinition, ToolInput, ToolOutput, ToolRegistry, UndoMetadata, UndoStore}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn spawn(&self, name: &str, task: F) [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `default_timezone` [INFO] [stdout] --> stageflow/src/helpers/timestamps.rs:16:52 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn normalize_to_utc(dt: DateTime, default_timezone: Option) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_timezone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn spawn(&self, name: &str, task: F) [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error` [INFO] [stdout] --> stageflow/src/interceptors/chain.rs:32:51 [INFO] [stdout] | [INFO] [stdout] 32 | async fn on_error(&self, _ctx: &StageContext, error: &str) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:44:28 [INFO] [stdout] | [INFO] [stdout] 44 | async fn before(&self, ctx: &StageContext) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | async fn after(&self, ctx: &StageContext, output: StageOutput) -> StageOutput { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delta` [INFO] [stdout] --> stageflow/src/compression/mod.rs:233:14 [INFO] [stdout] | [INFO] [stdout] 233 | let (delta, metrics) = compress(&base, ¤t); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `deps` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | let deps: Vec<&str> = if i == 0 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_deps` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stage` [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:196:27 [INFO] [stdout] | [INFO] [stdout] 196 | pub fn can_run(&self, stage: &str, dependencies: &[String]) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_stage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `status` [INFO] [stdout] --> stageflow/src/tools/executor.rs:121:21 [INFO] [stdout] | [INFO] [stdout] 121 | Err(status) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `default_timezone` [INFO] [stdout] --> stageflow/src/helpers/timestamps.rs:16:52 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn normalize_to_utc(dt: DateTime, default_timezone: Option) -> DateTime { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_timezone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `error` [INFO] [stdout] --> stageflow/src/interceptors/chain.rs:32:51 [INFO] [stdout] | [INFO] [stdout] 32 | async fn on_error(&self, _ctx: &StageContext, error: &str) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:44:28 [INFO] [stdout] | [INFO] [stdout] 44 | async fn before(&self, ctx: &StageContext) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | async fn after(&self, ctx: &StageContext, output: StageOutput) -> StageOutput { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let result = PipelineBuilder::new("test") [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `spec` [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:302:13 [INFO] [stdout] | [INFO] [stdout] 302 | let spec = StageSpec::new("shared", noop("shared")) [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_spec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `deps` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | let deps: Vec<&str> = if i == 0 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_deps` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CollectingEventSink` is never constructed [INFO] [stdout] --> stageflow/src/events/sink.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub struct CollectingEventSink { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `events`, `len`, `is_empty`, `clear`, and `events_of_type` are never used [INFO] [stdout] --> stageflow/src/events/sink.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl CollectingEventSink { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn events(&self) -> Vec<(String, Option)> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn events_of_type(&self, type_prefix: &str) -> Vec<(String, Option)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `path` and `append` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct JSONFileExporter { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 74 | path: std::path::PathBuf, [INFO] [stdout] | ^^^^ [INFO] [stdout] 75 | append: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stage` [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:196:27 [INFO] [stdout] | [INFO] [stdout] 196 | pub fn can_run(&self, stage: &str, dependencies: &[String]) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_stage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `colorize` and `verbose` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct ConsoleExporter { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 99 | colorize: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 100 | verbose: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `batch_size`, `flush_interval_seconds`, and `max_buffer_size` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct BufferedExporter { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 124 | batch_size: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 125 | flush_interval_seconds: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 126 | max_buffer_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exclude_patterns` and `include_patterns` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 142 | pub struct AnalyticsSink { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 143 | exclude_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 144 | include_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `detect_types` and `redact` are never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct PIIDetector { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 51 | detect_types: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 52 | redact: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `profanity_words` and `blocked_patterns` are never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct ContentFilter { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 65 | profanity_words: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 66 | blocked_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `additional_patterns` is never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct InjectionDetector { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 85 | additional_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `content_key` and `fail_on_violation` are never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct GuardrailStage { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 104 | content_key: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 105 | fail_on_violation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `store` and `config` are never read [INFO] [stdout] --> stageflow/src/helpers/memory.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct MemoryFetchStage { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 84 | store: std::sync::Arc, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | config: MemoryConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `responses`, `patterns`, `echo_mode`, `latency_ms`, and `fail_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MockLLMProvider { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 8 | responses: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | patterns: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | echo_mode: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | latency_ms: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 12 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `transcriptions` and `fail_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct MockSTTProvider { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 44 | transcriptions: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 45 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sample_rate`, `fail_rate`, and `call_count` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct MockTTSProvider { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 65 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 66 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 67 | call_count: AtomicUsize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `valid_tokens`, `accept_any`, and `fail_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct MockAuthProvider { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 80 | valid_tokens: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 81 | accept_any: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tools`, `fail_rate`, and `latency_ms` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct MockToolExecutor { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 95 | tools: HashMap serde_json::Value + Send + Sync>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 96 | execution_count: AtomicUsize, [INFO] [stdout] 97 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 98 | latency_ms: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `high_water_mark`, `low_water_mark`, and `is_throttling` are never read [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 80 | pub struct BackpressureMonitor { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 81 | stats: parking_lot::RwLock, [INFO] [stdout] 82 | high_water_mark: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 83 | low_water_mark: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 84 | is_throttling: std::sync::atomic::AtomicBool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_size` and `drop_on_overflow` are never read [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 120 | pub struct ChunkQueue { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 121 | max_size: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 122 | drop_on_overflow: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_duration_ms` and `sample_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 134 | pub struct StreamingBuffer { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 135 | max_duration_ms: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 136 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `backoff` and `jitter` are never read [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct RetryInterceptor { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 76 | backoff: BackoffStrategy, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 77 | /// Jitter strategy. [INFO] [stdout] 78 | jitter: JitterStrategy, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `calculate_delay` is never used [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 81 | impl RetryInterceptor { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | fn calculate_delay(&self, attempt: u32) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnifiedPipelineCancelled` is never constructed [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct UnifiedPipelineCancelled { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `func` is never read [INFO] [stdout] --> stageflow/src/stages/mod.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct AsyncFnStage [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 91 | func: F, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert_output_value` is never used [INFO] [stdout] --> stageflow/src/testing/assertions.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn assert_output_value(output: &StageOutput, key: &str, expected: &serde_json::Value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert_output_metadata` is never used [INFO] [stdout] --> stageflow/src/testing/assertions.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn assert_output_metadata(output: &StageOutput, key: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert_output_retryable` is never used [INFO] [stdout] --> stageflow/src/testing/assertions.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn assert_output_retryable(output: &StageOutput) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert_output_not_retryable` is never used [INFO] [stdout] --> stageflow/src/testing/assertions.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn assert_output_not_retryable(output: &StageOutput) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `tool_name`, `message`, and `created_at` are never read [INFO] [stdout] --> stageflow/src/tools/approval.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 27 | struct ApprovalRequest { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 28 | /// Request ID. [INFO] [stdout] 29 | id: Uuid, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | /// Tool name. [INFO] [stdout] 31 | tool_name: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | /// Approval message. [INFO] [stdout] 33 | message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | /// When the request was created. [INFO] [stdout] 35 | created_at: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ApprovalRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_SERVICE` is never used [INFO] [stdout] --> stageflow/src/tools/approval.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | static GLOBAL_SERVICE: RwLock>> = RwLock::new(None); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_approval_service` is never used [INFO] [stdout] --> stageflow/src/tools/approval.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_approval_service() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_approval_service` is never used [INFO] [stdout] --> stageflow/src/tools/approval.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn clear_approval_service() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_STORE` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:168:8 [INFO] [stdout] | [INFO] [stdout] 168 | static GLOBAL_STORE: RwLock>> = RwLock::new(None); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_undo_store` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:171:8 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_undo_store() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_undo_store` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:186:8 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn set_undo_store(store: Arc) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_undo_store` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn clear_undo_store() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/cancellation/mod.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | //! - CancellationToken for cooperative cancellation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] = note: `#[warn(clippy::doc_markdown)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 4 - //! - CancellationToken for cooperative cancellation [INFO] [stdout] 4 + //! - `CancellationToken` for cooperative cancellation [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/cancellation/mod.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | //! - CleanupRegistry for LIFO cleanup execution [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 5 - //! - CleanupRegistry for LIFO cleanup execution [INFO] [stdout] 5 + //! - `CleanupRegistry` for LIFO cleanup execution [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/cancellation/mod.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | //! - StructuredTaskGroup for managing related tasks [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 6 - //! - StructuredTaskGroup for managing related tasks [INFO] [stdout] 6 + //! - `StructuredTaskGroup` for managing related tasks [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:69:52 [INFO] [stdout] | [INFO] [stdout] 69 | let per_callback_timeout = (timeout_secs / callbacks.len() as f64).max(0.01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] = note: `#[warn(clippy::cast_precision_loss)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:91:31 [INFO] [stdout] | [INFO] [stdout] 91 | let msg = format!("Cleanup callback panicked: {:?}", panic); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: `#[warn(clippy::uninlined_format_args)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 91 - let msg = format!("Cleanup callback panicked: {:?}", panic); [INFO] [stdout] 91 + let msg = format!("Cleanup callback panicked: {panic:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:96:31 [INFO] [stdout] | [INFO] [stdout] 96 | let msg = format!("Cleanup task join error: {}", join_err); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 96 - let msg = format!("Cleanup task join error: {}", join_err); [INFO] [stdout] 96 + let msg = format!("Cleanup task join error: {join_err}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:90:31 [INFO] [stdout] | [INFO] [stdout] 90 | let msg = format!("Task join error: {}", join_error); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 90 - let msg = format!("Task join error: {}", join_error); [INFO] [stdout] 90 + let msg = format!("Task join error: {join_error}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | / impl std::fmt::Debug for StructuredTaskGroup { [INFO] [stdout] 125 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 126 | | f.debug_struct("StructuredTaskGroup") [INFO] [stdout] 127 | | .field("task_count", &self.task_count()) [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | cleanup_registry: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | handles: RwLock>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | first_error: RwLock>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] = note: `#[warn(clippy::missing_fields_in_debug)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/compression/mod.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | delta_bytes as f64 / original_bytes as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/compression/mod.rs:27:34 [INFO] [stdout] | [INFO] [stdout] 27 | delta_bytes as f64 / original_bytes as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | base: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] = note: `#[warn(clippy::implicit_hasher)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 45 ~ pub fn compute_delta( [INFO] [stdout] 46 ~ base: &HashMap, [INFO] [stdout] 47 | current: &HashMap, [INFO] [stdout] 48 | ) -> HashMap { [INFO] [stdout] 49 ~ let mut delta = HashMap::default(); [INFO] [stdout] 50 | [INFO] [stdout] 51 | // Find set operations (new or changed) [INFO] [stdout] 52 ~ let mut set_ops: HashMap = HashMap::default(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | current: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 45 ~ pub fn compute_delta( [INFO] [stdout] 46 | base: &HashMap, [INFO] [stdout] 47 ~ current: &HashMap, [INFO] [stdout] 48 | ) -> HashMap { [INFO] [stdout] 49 ~ let mut delta = HashMap::default(); [INFO] [stdout] 50 | [INFO] [stdout] 51 | // Find set operations (new or changed) [INFO] [stdout] 52 ~ let mut set_ops: HashMap = HashMap::default(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | base: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 89 ~ pub fn apply_delta( [INFO] [stdout] 90 ~ base: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | delta: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 89 ~ pub fn apply_delta( [INFO] [stdout] 90 | base: &HashMap, [INFO] [stdout] 91 ~ delta: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | base: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 115 ~ pub fn compress( [INFO] [stdout] 116 ~ base: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:117:15 [INFO] [stdout] | [INFO] [stdout] 117 | current: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 115 ~ pub fn compress( [INFO] [stdout] 116 | base: &HashMap, [INFO] [stdout] 117 ~ current: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/compression/mod.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / serde_json::to_string(&make_json_safe(data)) [INFO] [stdout] 131 | | .map(|s| s.len()) [INFO] [stdout] 132 | | .unwrap_or(0) [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] = note: `#[warn(clippy::map_unwrap_or)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 131 - .map(|s| s.len()) [INFO] [stdout] 132 - .unwrap_or(0) [INFO] [stdout] 131 + .map_or(0, |s| s.len()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/context/execution.rs:412:23 [INFO] [stdout] | [INFO] [stdout] 412 | .and_then(|v| v.as_bool()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `serde_json::Value::as_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] = note: `#[warn(clippy::redundant_closure_for_method_calls)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> stageflow/src/context/inputs.rs:121:1 [INFO] [stdout] | [INFO] [stdout] 121 | / impl Default for StageInputs { [INFO] [stdout] 122 | | fn default() -> Self { [INFO] [stdout] 123 | | Self { [INFO] [stdout] 124 | | outputs: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 130 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> stageflow/src/lib.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | clippy::all, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 10 + #[derive(Default)] [INFO] [stdout] 11 | pub struct StageInputs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:127:24 [INFO] [stdout] | [INFO] [stdout] 127 | return Err(format!( [INFO] [stdout] | ________________________^ [INFO] [stdout] 128 | | "Contract {}@{} already registered with a different schema", [INFO] [stdout] 129 | | stage, version [INFO] [stdout] 130 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | format!("Contract {}@{} not registered", stage, from_version) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 171 - format!("Contract {}@{} not registered", stage, from_version) [INFO] [stdout] 171 + format!("Contract {stage}@{from_version} not registered") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format!("Contract {}@{} not registered", stage, to_version) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 174 - format!("Contract {}@{} not registered", stage, to_version) [INFO] [stdout] 174 + format!("Contract {stage}@{to_version} not registered") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:186:31 [INFO] [stdout] | [INFO] [stdout] 186 | breaking.push(format!("Field '{}' removed", field)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 186 - breaking.push(format!("Field '{}' removed", field)); [INFO] [stdout] 186 + breaking.push(format!("Field '{field}' removed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:194:35 [INFO] [stdout] | [INFO] [stdout] 194 | breaking.push(format!("Required field '{}' added", field)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 194 - breaking.push(format!("Required field '{}' added", field)); [INFO] [stdout] 194 + breaking.push(format!("Required field '{field}' added")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:196:35 [INFO] [stdout] | [INFO] [stdout] 196 | warnings.push(format!("Optional field '{}' added", field)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 196 - warnings.push(format!("Optional field '{}' added", field)); [INFO] [stdout] 196 + warnings.push(format!("Optional field '{field}' added")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/registry.rs:308:22 [INFO] [stdout] | [INFO] [stdout] 308 | pub static REGISTRY: std::sync::LazyLock> = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] = note: `#[warn(clippy::incompatible_msrv)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable in a `const` context since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/registry.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | std::sync::LazyLock::new(|| Arc::new(ContractRegistry::new())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/registry.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | std::sync::LazyLock::new(|| Arc::new(ContractRegistry::new())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/suggestions.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | static SUGGESTIONS: LazyLock>> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable in a `const` context since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/suggestions.rs:48:77 [INFO] [stdout] | [INFO] [stdout] 48 | static SUGGESTIONS: LazyLock>> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/suggestions.rs:48:77 [INFO] [stdout] | [INFO] [stdout] 48 | static SUGGESTIONS: LazyLock>> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:1:40 [INFO] [stdout] | [INFO] [stdout] 1 | //! Typed output helper that validates StageOutput payloads. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Typed output helper that validates StageOutput payloads. [INFO] [stdout] 1 + //! Typed output helper that validates `StageOutput` payloads. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:125:47 [INFO] [stdout] | [INFO] [stdout] 125 | .map_err(|e| ValidationError::new(format!("Serialization error: {}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - .map_err(|e| ValidationError::new(format!("Serialization error: {}", e))) [INFO] [stdout] 125 + .map_err(|e| ValidationError::new(format!("Serialization error: {e}"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:140:53 [INFO] [stdout] | [INFO] [stdout] 140 | /// Validates payload and produces a successful StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 140 - /// Validates payload and produces a successful StageOutput. [INFO] [stdout] 140 + /// Validates payload and produces a successful `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:155:47 [INFO] [stdout] | [INFO] [stdout] 155 | .map_err(|e| ValidationError::new(format!("Deserialization error: {}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 155 - .map_err(|e| ValidationError::new(format!("Deserialization error: {}", e))) [INFO] [stdout] 155 + .map_err(|e| ValidationError::new(format!("Deserialization error: {e}"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:174:46 [INFO] [stdout] | [INFO] [stdout] 174 | /// Trait for types that can be converted to StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 174 - /// Trait for types that can be converted to StageOutput. [INFO] [stdout] 174 + /// Trait for types that can be converted to `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:176:23 [INFO] [stdout] | [INFO] [stdout] 176 | /// Converts to a StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 176 - /// Converts to a StageOutput. [INFO] [stdout] 176 + /// Converts to a `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:183:47 [INFO] [stdout] | [INFO] [stdout] 183 | .map_err(|e| ValidationError::new(format!("Serialization error: {}", e)))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 183 - .map_err(|e| ValidationError::new(format!("Serialization error: {}", e)))?; [INFO] [stdout] 183 + .map_err(|e| ValidationError::new(format!("Serialization error: {e}")))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:195:22 [INFO] [stdout] | [INFO] [stdout] 195 | /// Validates that a StageOutput contains expected fields. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 195 - /// Validates that a StageOutput contains expected fields. [INFO] [stdout] 195 + /// Validates that a `StageOutput` contains expected fields. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:216:33 [INFO] [stdout] | [INFO] [stdout] 216 | /// Extracts a typed value from StageOutput data. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 216 - /// Extracts a typed value from StageOutput data. [INFO] [stdout] 216 + /// Extracts a typed value from `StageOutput` data. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:230:56 [INFO] [stdout] | [INFO] [stdout] 230 | .map_err(|e| ValidationError::for_field(field, format!("Invalid type: {}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 230 - .map_err(|e| ValidationError::for_field(field, format!("Invalid type: {}", e))) [INFO] [stdout] 230 + .map_err(|e| ValidationError::for_field(field, format!("Invalid type: {e}"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `status` [INFO] [stdout] --> stageflow/src/tools/executor.rs:121:21 [INFO] [stdout] | [INFO] [stdout] 121 | Err(status) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/core/output.rs:232:39 [INFO] [stdout] | [INFO] [stdout] 232 | /// Returns the data, or an empty HashMap if none. [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 232 - /// Returns the data, or an empty HashMap if none. [INFO] [stdout] 232 + /// Returns the data, or an empty `HashMap` if none. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/core/output.rs:259:61 [INFO] [stdout] | [INFO] [stdout] 259 | serde_json::json!(self.artifacts.iter().map(|a| a.to_dict()).collect::>()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::artifact::StageArtifact::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/core/output.rs:266:58 [INFO] [stdout] | [INFO] [stdout] 266 | serde_json::json!(self.events.iter().map(|e| e.to_dict()).collect::>()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::event::StageEvent::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> stageflow/src/core/status.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl Default for StageKind { [INFO] [stdout] 25 | | fn default() -> Self { [INFO] [stdout] 26 | | Self::Work [INFO] [stdout] 27 | | } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 9 + #[derive(Default)] [INFO] [stdout] 10 | pub enum StageKind { [INFO] [stdout] 11 | /// A stage that transforms data (e.g., STT, TTS, LLM - change input form). [INFO] [stdout] ... [INFO] [stdout] 19 | /// A stage that performs actual work / side effects (e.g., Persist, Notify). [INFO] [stdout] 20 ~ #[default] [INFO] [stdout] 21 ~ Work, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> stageflow/src/core/status.rs:63:1 [INFO] [stdout] | [INFO] [stdout] 63 | / impl Default for StageStatus { [INFO] [stdout] 64 | | fn default() -> Self { [INFO] [stdout] 65 | | Self::Pending [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 46 + #[derive(Default)] [INFO] [stdout] 47 | pub enum StageStatus { [INFO] [stdout] 48 | /// Stage completed successfully. [INFO] [stdout] ... [INFO] [stdout] 58 | /// Stage is pending execution. [INFO] [stdout] 59 ~ #[default] [INFO] [stdout] 60 ~ Pending, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/events/backpressure.rs:68:14 [INFO] [stdout] | [INFO] [stdout] 68 | (dropped as f64 / total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/events/backpressure.rs:68:31 [INFO] [stdout] | [INFO] [stdout] 68 | (dropped as f64 / total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> stageflow/src/events/backpressure.rs:110:14 [INFO] [stdout] | [INFO] [stdout] 110 | on_drop: RwLock) + Send + Sync>>>, [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)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/events/backpressure.rs:139:18 [INFO] [stdout] | [INFO] [stdout] 139 | /// Sets the on_drop callback. [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 139 - /// Sets the on_drop callback. [INFO] [stdout] 139 + /// Sets the `on_drop` callback. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> stageflow/src/events/backpressure.rs:205:31 [INFO] [stdout] | [INFO] [stdout] 205 | if let Some(handle) = self.worker_handle.write().take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> stageflow/src/events/backpressure.rs:207:28 [INFO] [stdout] | [INFO] [stdout] 207 | let _ = handle.await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> stageflow/src/events/backpressure.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | / match self.tx.try_send(msg) { [INFO] [stdout] 252 | | Ok(()) => { [INFO] [stdout] 253 | | self.metrics.record_emit(); [INFO] [stdout] ... | [INFO] [stdout] 272 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else [INFO] [stdout] = note: `#[warn(clippy::single_match_else)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 251 ~ if let Ok(()) = self.tx.try_send(msg) { [INFO] [stdout] 252 + self.metrics.record_emit(); [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + self.metrics.record_drop(); [INFO] [stdout] 255 + [INFO] [stdout] 256 + let queue_size = self.queue_size(); [INFO] [stdout] 257 + let dropped_total = self.metrics.dropped(); [INFO] [stdout] 258 + [INFO] [stdout] 259 + warn!( [INFO] [stdout] 260 + event_type = %event_type, [INFO] [stdout] 261 + queue_size = %queue_size, [INFO] [stdout] 262 + dropped_total = %dropped_total, [INFO] [stdout] 263 + "Event dropped due to backpressure" [INFO] [stdout] 264 + ); [INFO] [stdout] 265 + [INFO] [stdout] 266 + if let Some(ref callback) = *self.on_drop.read() { [INFO] [stdout] 267 + callback(event_type, &data); [INFO] [stdout] 268 + } [INFO] [stdout] 269 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it is more idiomatic to use `Option<&T>` instead of `&Option` [INFO] [stdout] --> stageflow/src/events/sink.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | / fn log_event(&self, event_type: &str, data: &Option) { [INFO] [stdout] 78 | | match self.level { [INFO] [stdout] 79 | | Level::DEBUG => { [INFO] [stdout] 80 | | debug!( [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_option [INFO] [stdout] = note: `#[warn(clippy::ref_option)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - fn log_event(&self, event_type: &str, data: &Option) { [INFO] [stdout] 77 + fn log_event(&self, event_type: &str, data: Option<&serde_json::Value>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:141:32 [INFO] [stdout] | [INFO] [stdout] 141 | /// Analytics sink adapter for EventSink. [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 141 - /// Analytics sink adapter for EventSink. [INFO] [stdout] 141 + /// Analytics sink adapter for `EventSink`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/providers.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | /// Converts to OTel attributes. [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 33 - /// Converts to OTel attributes. [INFO] [stdout] 33 + /// Converts to `OTel` attributes. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / match timeout(duration, cleanup()).await { [INFO] [stdout] 124 | | Ok(()) => true, [INFO] [stdout] 125 | | Err(_) => { [INFO] [stdout] 126 | | tracing::warn!("Cleanup timed out after {:?}", duration); [INFO] [stdout] ... | [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 123 ~ if let Ok(()) = timeout(duration, cleanup()).await { true } else { [INFO] [stdout] 124 + tracing::warn!("Cleanup timed out after {:?}", duration); [INFO] [stdout] 125 + false [INFO] [stdout] 126 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may truncate the value on targets with 64-bit wide pointers [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:184:44 [INFO] [stdout] | [INFO] [stdout] 184 | * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] = note: `#[warn(clippy::cast_possible_truncation)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 184 - * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] 184 + * self.backoff_multiplier.powi(i32::try_from(attempt)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may wrap around the value on targets with 32-bit wide pointers [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:184:44 [INFO] [stdout] | [INFO] [stdout] 184 | * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap [INFO] [stdout] = note: `#[warn(clippy::cast_possible_wrap)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:38:23 [INFO] [stdout] | [INFO] [stdout] 38 | let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casts from `i32` to `f64` can be expressed infallibly using `From` [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:38:49 [INFO] [stdout] | [INFO] [stdout] 38 | let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: an `as` cast can become silently lossy if the types change in the future [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stdout] = note: `#[warn(clippy::cast_lossless)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: use `f64::from` instead [INFO] [stdout] | [INFO] [stdout] 38 - let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] 38 + let samples = self.data.len() as f64 / (f64::from(bytes_per_sample) * self.channels as f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casts from `u8` to `f64` can be expressed infallibly using `From` [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:38:75 [INFO] [stdout] | [INFO] [stdout] 38 | let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: an `as` cast can become silently lossy if the types change in the future [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stdout] help: use `f64::from` instead [INFO] [stdout] | [INFO] [stdout] 38 - let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] 38 + let samples = self.data.len() as f64 / (bytes_per_sample as f64 * f64::from(self.channels)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casts from `u32` to `f64` can be expressed infallibly using `From` [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:39:20 [INFO] [stdout] | [INFO] [stdout] 39 | (samples / self.sample_rate as f64) * 1000.0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: an `as` cast can become silently lossy if the types change in the future [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stdout] help: use `f64::from` instead [INFO] [stdout] | [INFO] [stdout] 39 - (samples / self.sample_rate as f64) * 1000.0 [INFO] [stdout] 39 + (samples / f64::from(self.sample_rate)) * 1000.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:74:49 [INFO] [stdout] | [INFO] [stdout] 74 | if self.total_items == 0 { 0.0 } else { self.dropped_items as f64 / self.total_items as f64 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:74:77 [INFO] [stdout] | [INFO] [stdout] 74 | if self.total_items == 0 { 0.0 } else { self.dropped_items as f64 / self.total_items as f64 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:104:34 [INFO] [stdout] | [INFO] [stdout] 104 | stats.fill_percentage = (queue_size as f64 / max_size as f64) * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:104:54 [INFO] [stdout] | [INFO] [stdout] 104 | stats.fill_percentage = (queue_size as f64 / max_size as f64) * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/timestamps.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | /// Re-export detect_unix_precision from utils [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 7 - /// Re-export detect_unix_precision from utils [INFO] [stdout] 7 + /// Re-export `detect_unix_precision` from utils [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | /// Detects if UUIDv7 timestamps deviate significantly from system clock. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 26 - /// Detects if UUIDv7 timestamps deviate significantly from system clock. [INFO] [stdout] 26 + /// Detects if `UUIDv7` timestamps deviate significantly from system clock. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:48:26 [INFO] [stdout] | [INFO] [stdout] 48 | /// Check skew for a UUIDv7. Returns skew in ms if significant, else None. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 48 - /// Check skew for a UUIDv7. Returns skew in ms if significant, else None. [INFO] [stdout] 48 + /// Check skew for a `UUIDv7`. Returns skew in ms if significant, else None. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `i64` may wrap around the value [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:62:57 [INFO] [stdout] | [INFO] [stdout] 62 | let uuid_time = DateTime::from_timestamp_millis(ts_ms as i64)?; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:64:20 [INFO] [stdout] | [INFO] [stdout] 64 | let skew = (system_time - uuid_time).num_milliseconds().unsigned_abs() as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:95:36 [INFO] [stdout] | [INFO] [stdout] 95 | ttl: Duration::seconds(ttl_seconds.max(1.0) as i64), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:192:20 [INFO] [stdout] | [INFO] [stdout] 192 | /// Generate a new UUIDv4. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 192 - /// Generate a new UUIDv4. [INFO] [stdout] 192 + /// Generate a new `UUIDv4`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:198:20 [INFO] [stdout] | [INFO] [stdout] 198 | /// Generate a new UUIDv7 (time-ordered) if available. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 198 - /// Generate a new UUIDv7 (time-ordered) if available. [INFO] [stdout] 198 + /// Generate a new `UUIDv7` (time-ordered) if available. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:76:22 [INFO] [stdout] | [INFO] [stdout] 76 | fn estimate_size(&self, ctx: &StageContext) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] = note: `#[warn(clippy::unused_self)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | / serde_json::to_string(snapshot) [INFO] [stdout] 80 | | .map(|s| s.len()) [INFO] [stdout] 81 | | .unwrap_or(0) [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 80 - .map(|s| s.len()) [INFO] [stdout] 81 - .unwrap_or(0) [INFO] [stdout] 80 + .map_or(0, |s| s.len()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `usize` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:99:25 [INFO] [stdout] | [INFO] [stdout] 99 | let threshold = (self.max_size_bytes as f64 * self.warning_threshold) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `usize` may lose the sign of the value [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:99:25 [INFO] [stdout] | [INFO] [stdout] 99 | let threshold = (self.max_size_bytes as f64 * self.warning_threshold) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] = note: `#[warn(clippy::cast_sign_loss)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:99:26 [INFO] [stdout] | [INFO] [stdout] 99 | let threshold = (self.max_size_bytes as f64 * self.warning_threshold) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `path` and `append` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct JSONFileExporter { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 74 | path: std::path::PathBuf, [INFO] [stdout] | ^^^^ [INFO] [stdout] 75 | append: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `colorize` and `verbose` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct ConsoleExporter { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 99 | colorize: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 100 | verbose: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `batch_size`, `flush_interval_seconds`, and `max_buffer_size` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct BufferedExporter { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 124 | batch_size: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 125 | flush_interval_seconds: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 126 | max_buffer_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exclude_patterns` and `include_patterns` are never read [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 142 | pub struct AnalyticsSink { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 143 | exclude_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 144 | include_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `detect_types` and `redact` are never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct PIIDetector { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 51 | detect_types: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 52 | redact: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `profanity_words` and `blocked_patterns` are never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct ContentFilter { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 65 | profanity_words: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 66 | blocked_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `additional_patterns` is never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 84 | pub struct InjectionDetector { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 85 | additional_patterns: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `content_key` and `fail_on_violation` are never read [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct GuardrailStage { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 104 | content_key: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 105 | fail_on_violation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `store` and `config` are never read [INFO] [stdout] --> stageflow/src/helpers/memory.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct MemoryFetchStage { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 84 | store: std::sync::Arc, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | config: MemoryConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `responses`, `patterns`, `echo_mode`, `latency_ms`, and `fail_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MockLLMProvider { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 8 | responses: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | patterns: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | echo_mode: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | latency_ms: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 12 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `transcriptions` and `fail_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct MockSTTProvider { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 44 | transcriptions: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 45 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sample_rate`, `fail_rate`, and `call_count` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct MockTTSProvider { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 65 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 66 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 67 | call_count: AtomicUsize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `valid_tokens`, `accept_any`, and `fail_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct MockAuthProvider { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 80 | valid_tokens: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 81 | accept_any: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tools`, `fail_rate`, and `latency_ms` are never read [INFO] [stdout] --> stageflow/src/helpers/mocks.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct MockToolExecutor { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 95 | tools: HashMap serde_json::Value + Send + Sync>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 96 | execution_count: AtomicUsize, [INFO] [stdout] 97 | fail_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 98 | latency_ms: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `high_water_mark`, `low_water_mark`, and `is_throttling` are never read [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 80 | pub struct BackpressureMonitor { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 81 | stats: parking_lot::RwLock, [INFO] [stdout] 82 | high_water_mark: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 83 | low_water_mark: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 84 | is_throttling: std::sync::atomic::AtomicBool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_size` and `drop_on_overflow` are never read [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 120 | pub struct ChunkQueue { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 121 | max_size: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 122 | drop_on_overflow: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_duration_ms` and `sample_rate` are never read [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 134 | pub struct StreamingBuffer { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 135 | max_duration_ms: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 136 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> stageflow/src/interceptors/idempotency.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | fn generate_key(&self, ctx: &StageContext) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `backoff` and `jitter` are never read [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct RetryInterceptor { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 76 | backoff: BackoffStrategy, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 77 | /// Jitter strategy. [INFO] [stdout] 78 | jitter: JitterStrategy, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `calculate_delay` is never used [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 81 | impl RetryInterceptor { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | fn calculate_delay(&self, attempt: u32) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_context` is never used [INFO] [stdout] --> stageflow/src/pipeline/integration_tests.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | fn test_context() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnifiedPipelineCancelled` is never constructed [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct UnifiedPipelineCancelled { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `func` is never read [INFO] [stdout] --> stageflow/src/stages/mod.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct AsyncFnStage [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 91 | func: F, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert_output_metadata` is never used [INFO] [stdout] --> stageflow/src/testing/assertions.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn assert_output_metadata(output: &StageOutput, key: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `tool_name`, `message`, and `created_at` are never read [INFO] [stdout] --> stageflow/src/tools/approval.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 27 | struct ApprovalRequest { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 28 | /// Request ID. [INFO] [stdout] 29 | id: Uuid, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | /// Tool name. [INFO] [stdout] 31 | tool_name: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | /// Approval message. [INFO] [stdout] 33 | message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | /// When the request was created. [INFO] [stdout] 35 | created_at: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ApprovalRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_SERVICE` is never used [INFO] [stdout] --> stageflow/src/tools/approval.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | static GLOBAL_SERVICE: RwLock>> = RwLock::new(None); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_approval_service` is never used [INFO] [stdout] --> stageflow/src/tools/approval.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn get_approval_service() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_approval_service` is never used [INFO] [stdout] --> stageflow/src/tools/approval.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn clear_approval_service() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `GLOBAL_STORE` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:168:8 [INFO] [stdout] | [INFO] [stdout] 168 | static GLOBAL_STORE: RwLock>> = RwLock::new(None); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_undo_store` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:171:8 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_undo_store() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_undo_store` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:186:8 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn set_undo_store(store: Arc) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_undo_store` is never used [INFO] [stdout] --> stageflow/src/tools/undo.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn clear_undo_store() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/cancellation/mod.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | //! - CancellationToken for cooperative cancellation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] = note: `#[warn(clippy::doc_markdown)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 4 - //! - CancellationToken for cooperative cancellation [INFO] [stdout] 4 + //! - `CancellationToken` for cooperative cancellation [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/cancellation/mod.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | //! - CleanupRegistry for LIFO cleanup execution [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 5 - //! - CleanupRegistry for LIFO cleanup execution [INFO] [stdout] 5 + //! - `CleanupRegistry` for LIFO cleanup execution [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/cancellation/mod.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | //! - StructuredTaskGroup for managing related tasks [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 6 - //! - StructuredTaskGroup for managing related tasks [INFO] [stdout] 6 + //! - `StructuredTaskGroup` for managing related tasks [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:55:30 [INFO] [stdout] | [INFO] [stdout] 55 | let millis = delay.as_millis() as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 55 - let millis = delay.as_millis() as u64; [INFO] [stdout] 55 + let millis = u64::try_from(delay.as_millis()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:59:30 [INFO] [stdout] | [INFO] [stdout] 59 | let millis = delay.as_millis() as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 59 - let millis = delay.as_millis() as u64; [INFO] [stdout] 59 + let millis = u64::try_from(delay.as_millis()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:64:30 [INFO] [stdout] | [INFO] [stdout] 64 | let millis = delay.as_millis() as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 64 - let millis = delay.as_millis() as u64; [INFO] [stdout] 64 + let millis = u64::try_from(delay.as_millis()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:69:52 [INFO] [stdout] | [INFO] [stdout] 69 | let per_callback_timeout = (timeout_secs / callbacks.len() as f64).max(0.01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] = note: `#[warn(clippy::cast_precision_loss)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:91:31 [INFO] [stdout] | [INFO] [stdout] 91 | let msg = format!("Cleanup callback panicked: {:?}", panic); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: `#[warn(clippy::uninlined_format_args)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 91 - let msg = format!("Cleanup callback panicked: {:?}", panic); [INFO] [stdout] 91 + let msg = format!("Cleanup callback panicked: {panic:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/cancellation/cleanup.rs:96:31 [INFO] [stdout] | [INFO] [stdout] 96 | let msg = format!("Cleanup task join error: {}", join_err); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 96 - let msg = format!("Cleanup task join error: {}", join_err); [INFO] [stdout] 96 + let msg = format!("Cleanup task join error: {join_err}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:90:31 [INFO] [stdout] | [INFO] [stdout] 90 | let msg = format!("Task join error: {}", join_error); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 90 - let msg = format!("Task join error: {}", join_error); [INFO] [stdout] 90 + let msg = format!("Task join error: {join_error}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | / impl std::fmt::Debug for StructuredTaskGroup { [INFO] [stdout] 125 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 126 | | f.debug_struct("StructuredTaskGroup") [INFO] [stdout] 127 | | .field("task_count", &self.task_count()) [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | cleanup_registry: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | handles: RwLock>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/cancellation/task_group.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | first_error: RwLock>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] = note: `#[warn(clippy::missing_fields_in_debug)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> stageflow/src/observability/wide_events.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub fn build_stage_payload( [INFO] [stdout] 34 | | ctx: &C, [INFO] [stdout] 35 | | stage_name: &str, [INFO] [stdout] 36 | | status: StageStatus, [INFO] [stdout] ... | [INFO] [stdout] 42 | | extra: Option>, [INFO] [stdout] 43 | | ) -> serde_json::Value { [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)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> stageflow/src/observability/wide_events.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | stage_details: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type to: `&[serde_json::Value]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] = note: `#[warn(clippy::needless_pass_by_value)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> stageflow/src/observability/wide_events.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | / pub fn emit_stage_event( [INFO] [stdout] 109 | | &self, [INFO] [stdout] 110 | | ctx: &C, [INFO] [stdout] 111 | | stage_name: &str, [INFO] [stdout] ... | [INFO] [stdout] 118 | | extra: Option>, [INFO] [stdout] 119 | | ) { [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:57:58 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn add_stage_spec(&mut self, spec: StageSpec) -> Result<(), PipelineValidationError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | format!("Dependency '{}' not found", dep), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 72 - format!("Dependency '{}' not found", dep), [INFO] [stdout] 72 + format!("Dependency '{dep}' not found"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:93:46 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn compose(mut self, other: Self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:100:61 [INFO] [stdout] | [INFO] [stdout] 100 | return Err(PipelineValidationError::new(format!( [INFO] [stdout] | _____________________________________________________________^ [INFO] [stdout] 101 | | "Conflicting stage definitions for '{}'", [INFO] [stdout] 102 | | name [INFO] [stdout] 103 | | )) [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | ... format!("Stage '{}' has different definitions in composed pipelines", name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 108 - format!("Stage '{}' has different definitions in composed pipelines", name), [INFO] [stdout] 108 + format!("Stage '{name}' has different definitions in composed pipelines"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn build(self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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] --> stageflow/src/pipeline/builder.rs:153:32 [INFO] [stdout] | [INFO] [stdout] 153 | fn detect_cycles(&self) -> Result<(), CycleDetectedError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 168 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::CycleDetectedError`, 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] --> stageflow/src/pipeline/builder_helpers.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 33 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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] --> stageflow/src/pipeline/builder_helpers.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/compression/mod.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | delta_bytes as f64 / original_bytes as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/compression/mod.rs:27:34 [INFO] [stdout] | [INFO] [stdout] 27 | delta_bytes as f64 / original_bytes as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | base: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] = note: `#[warn(clippy::implicit_hasher)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 45 ~ pub fn compute_delta( [INFO] [stdout] 46 ~ base: &HashMap, [INFO] [stdout] 47 | current: &HashMap, [INFO] [stdout] 48 | ) -> HashMap { [INFO] [stdout] 49 ~ let mut delta = HashMap::default(); [INFO] [stdout] 50 | [INFO] [stdout] 51 | // Find set operations (new or changed) [INFO] [stdout] 52 ~ let mut set_ops: HashMap = HashMap::default(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | current: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 45 ~ pub fn compute_delta( [INFO] [stdout] 46 | base: &HashMap, [INFO] [stdout] 47 ~ current: &HashMap, [INFO] [stdout] 48 | ) -> HashMap { [INFO] [stdout] 49 ~ let mut delta = HashMap::default(); [INFO] [stdout] 50 | [INFO] [stdout] 51 | // Find set operations (new or changed) [INFO] [stdout] 52 ~ let mut set_ops: HashMap = HashMap::default(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:62:34 [INFO] [stdout] | [INFO] [stdout] 62 | vec![&*Box::leak(format!("{}{}", prefix, i).into_boxed_str())] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 62 - vec![&*Box::leak(format!("{}{}", prefix, i).into_boxed_str())] [INFO] [stdout] 62 + vec![&*Box::leak(format!("{prefix}{i}").into_boxed_str())] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:67:45 [INFO] [stdout] | [INFO] [stdout] 67 | first_depends_on.iter().map(|s| s.to_string()).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:67:49 [INFO] [stdout] | [INFO] [stdout] 67 | first_depends_on.iter().map(|s| s.to_string()).collect() [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] = note: `#[warn(clippy::inefficient_to_string)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | base: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 89 ~ pub fn apply_delta( [INFO] [stdout] 90 ~ base: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | delta: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 89 ~ pub fn apply_delta( [INFO] [stdout] 90 | base: &HashMap, [INFO] [stdout] 91 ~ delta: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:96:55 [INFO] [stdout] | [INFO] [stdout] 96 | let deps: Vec = depends_on.iter().map(|s| s.to_string()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:96:59 [INFO] [stdout] | [INFO] [stdout] 96 | let deps: Vec = depends_on.iter().map(|s| s.to_string()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | base: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 115 ~ pub fn compress( [INFO] [stdout] 116 ~ base: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/compression/mod.rs:117:15 [INFO] [stdout] | [INFO] [stdout] 117 | current: &HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 115 ~ pub fn compress( [INFO] [stdout] 116 | base: &HashMap, [INFO] [stdout] 117 ~ current: &HashMap, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:124:10 [INFO] [stdout] | [INFO] [stdout] 124 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/compression/mod.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / serde_json::to_string(&make_json_safe(data)) [INFO] [stdout] 131 | | .map(|s| s.len()) [INFO] [stdout] 132 | | .unwrap_or(0) [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] = note: `#[warn(clippy::map_unwrap_or)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 131 - .map(|s| s.len()) [INFO] [stdout] 132 - .unwrap_or(0) [INFO] [stdout] 131 + .map_or(0, |s| s.len()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:128:54 [INFO] [stdout] | [INFO] [stdout] 128 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:128:58 [INFO] [stdout] | [INFO] [stdout] 128 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:164:10 [INFO] [stdout] | [INFO] [stdout] 164 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:168:54 [INFO] [stdout] | [INFO] [stdout] 168 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:168:58 [INFO] [stdout] | [INFO] [stdout] 168 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:183:56 [INFO] [stdout] | [INFO] [stdout] 183 | .with_dependencies(branch_names.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:183:60 [INFO] [stdout] | [INFO] [stdout] 183 | .with_dependencies(branch_names.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:203:27 [INFO] [stdout] | [INFO] [stdout] 203 | pub fn build(self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | (timeout_seconds / callbacks.len() as f64).max(0.01) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: assigning the result of `Clone::clone()` may be inefficient [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | *self.completed.lock() = completed.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `(*self.completed.lock()).clone_from(&completed)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones [INFO] [stdout] = note: `#[warn(clippy::assigning_clones)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: assigning the result of `Clone::clone()` may be inefficient [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | *self.failed.lock() = failed.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `(*self.failed.lock()).clone_from(&failed)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:123:16 [INFO] [stdout] | [INFO] [stdout] 123 | callbacks: Mutex>>, [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: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | / impl std::fmt::Debug for CancellationToken { [INFO] [stdout] 127 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 128 | | f.debug_struct("CancellationToken") [INFO] [stdout] 129 | | .field("cancelled", &self.cancelled.load(Ordering::SeqCst)) [INFO] [stdout] ... | [INFO] [stdout] 133 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | callbacks: Mutex>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | //! Legacy StageGraph DAG execution engine. [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Legacy StageGraph DAG execution engine. [INFO] [stdout] 1 + //! Legacy `StageGraph` DAG execution engine. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | stage_order: Vec, [INFO] [stdout] | ^^^^^^^^^^^ help: consider changing the type to: `&[String]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:90:65 [INFO] [stdout] | [INFO] [stdout] 90 | /// allowing for maximum parallelism. This matches Python's StageGraph behavior. [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 90 - /// allowing for maximum parallelism. This matches Python's StageGraph behavior. [INFO] [stdout] 90 + /// allowing for maximum parallelism. This matches Python's `StageGraph` behavior. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many lines (111/100) [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub async fn execute( [INFO] [stdout] 92 | | &self, [INFO] [stdout] 93 | | ctx: Arc, [INFO] [stdout] 94 | | snapshot: ContextSnapshot, [INFO] [stdout] 95 | | ) -> Result { [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines [INFO] [stdout] = note: `#[warn(clippy::too_many_lines)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:151:21 [INFO] [stdout] | [INFO] [stdout] 151 | format!("Deadlocked stage graph; remaining stages: {:?}", pending) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 151 - format!("Deadlocked stage graph; remaining stages: {:?}", pending) [INFO] [stdout] 151 + format!("Deadlocked stage graph; remaining stages: {pending:?}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:167:45 [INFO] [stdout] | [INFO] [stdout] 167 | ... error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 167 - error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] 167 + error: Some(format!("Stage '{stage_name}' failed")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:179:45 [INFO] [stdout] | [INFO] [stdout] 179 | ... error: Some(format!("Stage '{}' cancelled pipeline", stage_name)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 179 - error: Some(format!("Stage '{}' cancelled pipeline", stage_name)), [INFO] [stdout] 179 + error: Some(format!("Stage '{stage_name}' cancelled pipeline")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:218:61 [INFO] [stdout] | [INFO] [stdout] 218 | return Err(StageflowError::Internal(format!("Task join error: {}", e))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 218 - return Err(StageflowError::Internal(format!("Task join error: {}", e))); [INFO] [stdout] 218 + return Err(StageflowError::Internal(format!("Task join error: {e}"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: adding items after statements is confusing, since items exist from the start of the scope [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:331:5 [INFO] [stdout] | [INFO] [stdout] 331 | / fn visit( [INFO] [stdout] 332 | | node: &str, [INFO] [stdout] 333 | | stages: &HashMap, [INFO] [stdout] 334 | | visited: &mut HashSet, [INFO] [stdout] ... | [INFO] [stdout] 355 | | result.push(node.to_string()); [INFO] [stdout] 356 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements [INFO] [stdout] = note: `#[warn(clippy::items_after_statements)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let now = SystemTime::now() [INFO] [stdout] | ___________________^ [INFO] [stdout] 44 | | .duration_since(UNIX_EPOCH) [INFO] [stdout] 45 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 46 | | .unwrap_or(0.0); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 45 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 46 - .unwrap_or(0.0); [INFO] [stdout] 45 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | self.completed_stages as f64 / self.total_stages as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:114:40 [INFO] [stdout] | [INFO] [stdout] 114 | self.completed_stages as f64 / self.total_stages as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/context/execution.rs:412:23 [INFO] [stdout] | [INFO] [stdout] 412 | .and_then(|v| v.as_bool()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `serde_json::Value::as_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] = note: `#[warn(clippy::redundant_closure_for_method_calls)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:1:40 [INFO] [stdout] | [INFO] [stdout] 1 | //! Guard retry strategy utilities for UnifiedStageGraph. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Guard retry strategy utilities for UnifiedStageGraph. [INFO] [stdout] 1 + //! Guard retry strategy utilities for `UnifiedStageGraph`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | / format!( [INFO] [stdout] 116 | | "Guard retry policy references unknown guard stage '{}'", [INFO] [stdout] 117 | | guard_name [INFO] [stdout] 118 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:122:28 [INFO] [stdout] | [INFO] [stdout] 122 | return Err(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 123 | | "Guard retry policy requires '{}' to be a GUARD stage", [INFO] [stdout] 124 | | guard_name [INFO] [stdout] 125 | | )); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:136:28 [INFO] [stdout] | [INFO] [stdout] 136 | return Err(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 137 | | "Guard retry policy for '{}' cannot target itself", [INFO] [stdout] 138 | | guard_name [INFO] [stdout] 139 | | )); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> stageflow/src/context/inputs.rs:121:1 [INFO] [stdout] | [INFO] [stdout] 121 | / impl Default for StageInputs { [INFO] [stdout] 122 | | fn default() -> Self { [INFO] [stdout] 123 | | Self { [INFO] [stdout] 124 | | outputs: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 130 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> stageflow/src/lib.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | clippy::all, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 10 + #[derive(Default)] [INFO] [stdout] 11 | pub struct StageInputs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/pipeline/idempotency.rs:34:19 [INFO] [stdout] | [INFO] [stdout] 34 | let now = SystemTime::now() [INFO] [stdout] | ___________________^ [INFO] [stdout] 35 | | .duration_since(UNIX_EPOCH) [INFO] [stdout] 36 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 37 | | .unwrap_or(0.0); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 36 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 37 - .unwrap_or(0.0); [INFO] [stdout] 36 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/pipeline/idempotency.rs:65:23 [INFO] [stdout] | [INFO] [stdout] 65 | let now = SystemTime::now() [INFO] [stdout] | _______________________^ [INFO] [stdout] 66 | | .duration_since(UNIX_EPOCH) [INFO] [stdout] 67 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 68 | | .unwrap_or(0.0); [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 67 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 68 - .unwrap_or(0.0); [INFO] [stdout] 67 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: more than 3 bools in a struct [INFO] [stdout] --> stageflow/src/pipeline/interfaces.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / pub struct StageCapabilities { [INFO] [stdout] 72 | | /// Whether the stage supports retries. [INFO] [stdout] 73 | | pub retryable: bool, [INFO] [stdout] 74 | | /// Maximum retry attempts if retryable. [INFO] [stdout] ... | [INFO] [stdout] 85 | | pub parallel_safe: bool, [INFO] [stdout] 86 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a state machine or refactoring bools into two-variant enums [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#struct_excessive_bools [INFO] [stdout] = note: `#[warn(clippy::struct_excessive_bools)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `u32` may truncate the value on targets with 64-bit wide pointers [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:147:73 [INFO] [stdout] | [INFO] [stdout] 147 | let exp_delay = base.saturating_mul(2u64.saturating_pow(attempt as u32)); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 147 - let exp_delay = base.saturating_mul(2u64.saturating_pow(attempt as u32)); [INFO] [stdout] 147 + let exp_delay = base.saturating_mul(2u64.saturating_pow(u32::try_from(attempt))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:247:40 [INFO] [stdout] | [INFO] [stdout] 247 | ... delay_ms = delay.as_millis() as u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 247 - delay_ms = delay.as_millis() as u64, [INFO] [stdout] 247 + delay_ms = u64::try_from(delay.as_millis()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/spec.rs:71:31 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn validate(&self) -> Result<(), PipelineValidationError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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] --> stageflow/src/pipeline/spec.rs:102:44 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn new(name: impl Into) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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 a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn with_guard_retry_strategy(mut self, strategy: GuardRetryStrategy) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:66:81 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn with_guard_retry_strategy(mut self, strategy: GuardRetryStrategy) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: stageflow/src/errors.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | Validation(#[from] PipelineValidationError), [INFO] [stdout] | ------------------------------------------- the largest variant contains at least 192 bytes [INFO] [stdout] ... [INFO] [stdout] 31 | CycleDetected(#[from] CycleDetectedError), [INFO] [stdout] | ----------------------------------------- the variant `CycleDetected` contains at least 168 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::StageflowError`, 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: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:89:63 [INFO] [stdout] | [INFO] [stdout] 89 | /// - Conditional stage execution (skip if inputs contain skip_reason) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 89 - /// - Conditional stage execution (skip if inputs contain skip_reason) [INFO] [stdout] 89 + /// - Conditional stage execution (skip if inputs contain `skip_reason`) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:90:27 [INFO] [stdout] | [INFO] [stdout] 90 | /// - Cancellation on StageStatus::Cancel [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 90 - /// - Cancellation on StageStatus::Cancel [INFO] [stdout] 90 + /// - Cancellation on `StageStatus::Cancel` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many lines (362/100) [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub async fn execute( [INFO] [stdout] 92 | | &self, [INFO] [stdout] 93 | | ctx: Arc, [INFO] [stdout] 94 | | snapshot: ContextSnapshot, [INFO] [stdout] 95 | | ) -> Result { [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:263:16 [INFO] [stdout] | [INFO] [stdout] 263 | if tasks.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tasks.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:269:53 [INFO] [stdout] | [INFO] [stdout] 269 | return Err(StageflowError::Internal(format!( [INFO] [stdout] | _____________________________________________________^ [INFO] [stdout] 270 | | "Deadlocked stage graph; remaining stages: {:?}", [INFO] [stdout] 271 | | pending [INFO] [stdout] 272 | | ))); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | / let result = match next { [INFO] [stdout] 277 | | Some(res) => res, [INFO] [stdout] 278 | | None => continue, [INFO] [stdout] 279 | | }; [INFO] [stdout] | |______________^ help: consider writing: `let Some(result) = next else { continue };` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else [INFO] [stdout] = note: `#[warn(clippy::manual_let_else)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:297:13 [INFO] [stdout] | [INFO] [stdout] 297 | / let spec = match specs.get(&stage_name) { [INFO] [stdout] 298 | | Some(s) => s, [INFO] [stdout] 299 | | None => continue, [INFO] [stdout] 300 | | }; [INFO] [stdout] | |______________^ help: consider writing: `let Some(spec) = specs.get(&stage_name) else { continue };` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:313:22 [INFO] [stdout] | [INFO] [stdout] 313 | .or_insert_with(GuardRetryRuntimeState::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:429:33 [INFO] [stdout] | [INFO] [stdout] 429 | error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 429 - error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] 429 + error: Some(format!("Stage '{stage_name}' failed")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/stages/ports.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | //! StagePorts - Injected capabilities for stages (callbacks, services, db). [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! StagePorts - Injected capabilities for stages (callbacks, services, db). [INFO] [stdout] 1 + //! `StagePorts` - Injected capabilities for stages (callbacks, services, db). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `f64` may cause a loss of precision (`i64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/stages/result.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | (self.ended_at - self.started_at).num_milliseconds() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/stages/mod.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | / impl Debug for FnStage [INFO] [stdout] 60 | | where [INFO] [stdout] 61 | | F: Fn(&StageContext) -> StageOutput + Send + Sync, [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/stages/mod.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | func: F, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/stages/mod.rs:110:1 [INFO] [stdout] | [INFO] [stdout] 110 | / impl Debug for AsyncFnStage [INFO] [stdout] 111 | | where [INFO] [stdout] 112 | | F: Fn(StageContext) -> Fut + Send + Sync, [INFO] [stdout] 113 | | Fut: std::future::Future + Send, [INFO] [stdout] ... | [INFO] [stdout] 120 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/stages/mod.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | func: F, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/testing/assertions.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / assert_eq!( [INFO] [stdout] 54 | | actual, [INFO] [stdout] 55 | | Some(expected), [INFO] [stdout] 56 | | "Expected value {:?} for key '{}', got {:?}", [INFO] [stdout] ... | [INFO] [stdout] 59 | | actual [INFO] [stdout] 60 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/testing/assertions.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / assert!( [INFO] [stdout] 66 | | output.metadata.contains_key(key), [INFO] [stdout] 67 | | "Expected metadata to contain key '{}', but it doesn't", [INFO] [stdout] 68 | | key [INFO] [stdout] 69 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:127:24 [INFO] [stdout] | [INFO] [stdout] 127 | return Err(format!( [INFO] [stdout] | ________________________^ [INFO] [stdout] 128 | | "Contract {}@{} already registered with a different schema", [INFO] [stdout] 129 | | stage, version [INFO] [stdout] 130 | | )); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 58 | /// Builds a StageContext. [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 58 - /// Builds a StageContext. [INFO] [stdout] 58 + /// Builds a `StageContext`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:111:35 [INFO] [stdout] | [INFO] [stdout] 111 | self.outputs.values().all(|o| o.is_success()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::super::core::output::StageOutput::is_success` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | format!("Contract {}@{} not registered", stage, from_version) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 171 - format!("Contract {}@{} not registered", stage, from_version) [INFO] [stdout] 171 + format!("Contract {stage}@{from_version} not registered") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | format!("Contract {}@{} not registered", stage, to_version) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 174 - format!("Contract {}@{} not registered", stage, to_version) [INFO] [stdout] 174 + format!("Contract {stage}@{to_version} not registered") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:186:31 [INFO] [stdout] | [INFO] [stdout] 186 | breaking.push(format!("Field '{}' removed", field)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 186 - breaking.push(format!("Field '{}' removed", field)); [INFO] [stdout] 186 + breaking.push(format!("Field '{field}' removed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:194:35 [INFO] [stdout] | [INFO] [stdout] 194 | breaking.push(format!("Required field '{}' added", field)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 194 - breaking.push(format!("Required field '{}' added", field)); [INFO] [stdout] 194 + breaking.push(format!("Required field '{field}' added")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | self.outputs.values().any(|o| o.is_failure()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::super::core::output::StageOutput::is_failure` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:157:34 [INFO] [stdout] | [INFO] [stdout] 157 | pipeline.stages.push(format!("stage_{}", i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 157 - pipeline.stages.push(format!("stage_{}", i)); [INFO] [stdout] 157 + pipeline.stages.push(format!("stage_{i}")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/registry.rs:196:35 [INFO] [stdout] | [INFO] [stdout] 196 | warnings.push(format!("Optional field '{}' added", field)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 196 - warnings.push(format!("Optional field '{}' added", field)); [INFO] [stdout] 196 + warnings.push(format!("Optional field '{field}' added")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/registry.rs:308:22 [INFO] [stdout] | [INFO] [stdout] 308 | pub static REGISTRY: std::sync::LazyLock> = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] = note: `#[warn(clippy::incompatible_msrv)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable in a `const` context since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/registry.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | std::sync::LazyLock::new(|| Arc::new(ContractRegistry::new())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/registry.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | std::sync::LazyLock::new(|| Arc::new(ContractRegistry::new())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/suggestions.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | static SUGGESTIONS: LazyLock>> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable in a `const` context since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/suggestions.rs:48:77 [INFO] [stdout] | [INFO] [stdout] 48 | static SUGGESTIONS: LazyLock>> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: current MSRV (Minimum Supported Rust Version) is `1.75.0` but this item is stable since `1.80.0` [INFO] [stdout] --> stageflow/src/contracts/suggestions.rs:48:77 [INFO] [stdout] | [INFO] [stdout] 48 | static SUGGESTIONS: LazyLock>> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:1:40 [INFO] [stdout] | [INFO] [stdout] 1 | //! Typed output helper that validates StageOutput payloads. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Typed output helper that validates StageOutput payloads. [INFO] [stdout] 1 + //! Typed output helper that validates `StageOutput` payloads. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:125:47 [INFO] [stdout] | [INFO] [stdout] 125 | .map_err(|e| ValidationError::new(format!("Serialization error: {}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 125 - .map_err(|e| ValidationError::new(format!("Serialization error: {}", e))) [INFO] [stdout] 125 + .map_err(|e| ValidationError::new(format!("Serialization error: {e}"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:140:53 [INFO] [stdout] | [INFO] [stdout] 140 | /// Validates payload and produces a successful StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 140 - /// Validates payload and produces a successful StageOutput. [INFO] [stdout] 140 + /// Validates payload and produces a successful `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:155:47 [INFO] [stdout] | [INFO] [stdout] 155 | .map_err(|e| ValidationError::new(format!("Deserialization error: {}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 155 - .map_err(|e| ValidationError::new(format!("Deserialization error: {}", e))) [INFO] [stdout] 155 + .map_err(|e| ValidationError::new(format!("Deserialization error: {e}"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:174:46 [INFO] [stdout] | [INFO] [stdout] 174 | /// Trait for types that can be converted to StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 174 - /// Trait for types that can be converted to StageOutput. [INFO] [stdout] 174 + /// Trait for types that can be converted to `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:176:23 [INFO] [stdout] | [INFO] [stdout] 176 | /// Converts to a StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 176 - /// Converts to a StageOutput. [INFO] [stdout] 176 + /// Converts to a `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:183:47 [INFO] [stdout] | [INFO] [stdout] 183 | .map_err(|e| ValidationError::new(format!("Serialization error: {}", e)))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 183 - .map_err(|e| ValidationError::new(format!("Serialization error: {}", e)))?; [INFO] [stdout] 183 + .map_err(|e| ValidationError::new(format!("Serialization error: {e}")))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:195:22 [INFO] [stdout] | [INFO] [stdout] 195 | /// Validates that a StageOutput contains expected fields. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 195 - /// Validates that a StageOutput contains expected fields. [INFO] [stdout] 195 + /// Validates that a `StageOutput` contains expected fields. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:216:33 [INFO] [stdout] | [INFO] [stdout] 216 | /// Extracts a typed value from StageOutput data. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 216 - /// Extracts a typed value from StageOutput data. [INFO] [stdout] 216 + /// Extracts a typed value from `StageOutput` data. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/contracts/typed_output.rs:230:56 [INFO] [stdout] | [INFO] [stdout] 230 | .map_err(|e| ValidationError::for_field(field, format!("Invalid type: {}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 230 - .map_err(|e| ValidationError::for_field(field, format!("Invalid type: {}", e))) [INFO] [stdout] 230 + .map_err(|e| ValidationError::for_field(field, format!("Invalid type: {e}"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many lines (127/100) [INFO] [stdout] --> stageflow/src/tools/executor.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | / pub async fn execute( [INFO] [stdout] 48 | | &self, [INFO] [stdout] 49 | | input: ToolInput, [INFO] [stdout] 50 | | definition: &ToolDefinition, [INFO] [stdout] 51 | | ctx: &C, [INFO] [stdout] 52 | | ) -> Result { [INFO] [stdout] | |______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/tools/executor.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | format!("Behavior '{}' not allowed", behavior), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 76 - format!("Behavior '{}' not allowed", behavior), [INFO] [stdout] 76 + format!("Behavior '{behavior}' not allowed"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/tools/executor.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | / let metadata = match self.undo_store.get(action_id) { [INFO] [stdout] 206 | | Some(m) => m, [INFO] [stdout] 207 | | None => return Ok(false), [INFO] [stdout] 208 | | }; [INFO] [stdout] | |__________^ help: consider writing: `let Some(metadata) = self.undo_store.get(action_id) else { return Ok(false) };` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/tools/executor.rs:232:1 [INFO] [stdout] | [INFO] [stdout] 232 | / impl std::fmt::Debug for AdvancedToolExecutor { [INFO] [stdout] 233 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 234 | | f.debug_struct("AdvancedToolExecutor") [INFO] [stdout] 235 | | .field("approval_timeout", &self.approval_timeout) [INFO] [stdout] ... | [INFO] [stdout] 238 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/tools/executor.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | registry: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/tools/executor.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | approval_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/tools/executor.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | undo_store: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/tools/registry.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | / let func_obj = match func_obj { [INFO] [stdout] 162 | | Some(obj) => obj, [INFO] [stdout] 163 | | None => { [INFO] [stdout] 164 | | return Err(UnresolvedToolCall { [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#manual_let_else [INFO] [stdout] help: consider writing [INFO] [stdout] | [INFO] [stdout] 161 ~ let Some(func_obj) = func_obj else { [INFO] [stdout] 162 + return Err(UnresolvedToolCall { [INFO] [stdout] 163 + id, [INFO] [stdout] 164 + name: None, [INFO] [stdout] 165 + error: "Missing function wrapper".to_string(), [INFO] [stdout] 166 + raw: call.clone(), [INFO] [stdout] 167 + }); [INFO] [stdout] 168 + }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: these match arms have identical bodies [INFO] [stdout] --> stageflow/src/tools/registry.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | Some(_) => serde_json::json!({}), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 208 | None => serde_json::json!({}), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is unintentional make the arms return different values [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms [INFO] [stdout] = note: `#[warn(clippy::match_same_arms)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: otherwise merge the patterns into a single arm [INFO] [stdout] | [INFO] [stdout] 207 ~ Some(_) | None => serde_json::json!({}), [INFO] [stdout] 208 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/tools/registry.rs:216:24 [INFO] [stdout] | [INFO] [stdout] 216 | error: format!("No tool registered for action type '{}'", name_str), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 216 - error: format!("No tool registered for action type '{}'", name_str), [INFO] [stdout] 216 + error: format!("No tool registered for action type '{name_str}'"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or_else()` on an `Option` value [INFO] [stdout] --> stageflow/src/tools/undo.rs:46:26 [INFO] [stdout] | [INFO] [stdout] 46 | let created_at = dict [INFO] [stdout] | __________________________^ [INFO] [stdout] 47 | | .get("created_at") [INFO] [stdout] 48 | | .and_then(|v| v.as_str()) [INFO] [stdout] 49 | | .map(String::from) [INFO] [stdout] 50 | | .unwrap_or_else(crate::utils::iso_timestamp); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 46 ~ let created_at = dict [INFO] [stdout] 47 + .get("created_at") [INFO] [stdout] 48 ~ .and_then(|v| v.as_str()).map_or_else(crate::utils::iso_timestamp, String::from); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> stageflow/src/tools/undo.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn store(&self, metadata: UndoMetadata) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] help: consider taking a reference instead [INFO] [stdout] | [INFO] [stdout] 97 | pub fn store(&self, metadata: &UndoMetadata) { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:81:20 [INFO] [stdout] | [INFO] [stdout] 81 | let int_part = abs_ts.trunc() as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:152:20 [INFO] [stdout] | [INFO] [stdout] 152 | let secs = value.trunc() as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `u32` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:153:21 [INFO] [stdout] | [INFO] [stdout] 153 | let nanos = ((value.fract().abs()) * 1_000_000_000.0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `u32` may lose the sign of the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:153:21 [INFO] [stdout] | [INFO] [stdout] 153 | let nanos = ((value.fract().abs()) * 1_000_000_000.0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:161:25 [INFO] [stdout] | [INFO] [stdout] 161 | let timestamp_i64 = value as i64; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:170:25 [INFO] [stdout] | [INFO] [stdout] 170 | let nanos = ((timestamp_i64 % 1000) * 1_000_000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 170 - let nanos = ((timestamp_i64 % 1000) * 1_000_000) as u32; [INFO] [stdout] 170 + let nanos = u32::try_from((timestamp_i64 % 1000) * 1_000_000); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may lose the sign of the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:170:25 [INFO] [stdout] | [INFO] [stdout] 170 | let nanos = ((timestamp_i64 % 1000) * 1_000_000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | let nanos = ((timestamp_i64 % 1_000_000) * 1000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 177 - let nanos = ((timestamp_i64 % 1_000_000) * 1000) as u32; [INFO] [stdout] 177 + let nanos = u32::try_from((timestamp_i64 % 1_000_000) * 1000); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may lose the sign of the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | let nanos = ((timestamp_i64 % 1_000_000) * 1000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:32:43 [INFO] [stdout] | [INFO] [stdout] 32 | /// Optional skew in milliseconds for UUIDv7. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 32 - /// Optional skew in milliseconds for UUIDv7. [INFO] [stdout] 32 + /// Optional skew in milliseconds for `UUIDv7`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | listeners: RwLock>>, [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: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:84:19 [INFO] [stdout] | [INFO] [stdout] 84 | let now = std::time::SystemTime::now() [INFO] [stdout] | ___________________^ [INFO] [stdout] 85 | | .duration_since(std::time::UNIX_EPOCH) [INFO] [stdout] 86 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 87 | | .unwrap_or(0.0); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 86 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 87 - .unwrap_or(0.0); [INFO] [stdout] 86 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:93:15 [INFO] [stdout] | [INFO] [stdout] 93 | while window.front().map_or(false, |e| e.timestamp < cutoff) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 93 - while window.front().map_or(false, |e| e.timestamp < cutoff) { [INFO] [stdout] 93 + while window.front().is_some_and(|e| e.timestamp < cutoff) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/core/output.rs:232:39 [INFO] [stdout] | [INFO] [stdout] 232 | /// Returns the data, or an empty HashMap if none. [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 232 - /// Returns the data, or an empty HashMap if none. [INFO] [stdout] 232 + /// Returns the data, or an empty `HashMap` if none. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 9 ~ pub fn validate_dag, S: ::std::hash::BuildHasher>( [INFO] [stdout] 10 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: adding items after statements is confusing, since items exist from the start of the scope [INFO] [stdout] --> stageflow/src/utils/validation.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / fn dfs>( [INFO] [stdout] 18 | | node: &str, [INFO] [stdout] 19 | | stages: &HashMap>, [INFO] [stdout] 20 | | visited: &mut HashSet, [INFO] [stdout] ... | [INFO] [stdout] 50 | | Ok(()) [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/core/output.rs:259:61 [INFO] [stdout] | [INFO] [stdout] 259 | serde_json::json!(self.artifacts.iter().map(|a| a.to_dict()).collect::>()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::artifact::StageArtifact::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/core/output.rs:266:58 [INFO] [stdout] | [INFO] [stdout] 266 | serde_json::json!(self.events.iter().map(|e| e.to_dict()).collect::>()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::event::StageEvent::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 78 ~ pub fn validate_dependencies_exist, S: ::std::hash::BuildHasher>( [INFO] [stdout] 79 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:121:14 [INFO] [stdout] | [INFO] [stdout] 121 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 120 ~ pub fn validate_no_self_dependencies, S: ::std::hash::BuildHasher>( [INFO] [stdout] 121 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:189:42 [INFO] [stdout] | [INFO] [stdout] 189 | ValidationError::Cycle(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 189 - ValidationError::Cycle(e) => write!(f, "{}", e), [INFO] [stdout] 189 + ValidationError::Cycle(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:190:54 [INFO] [stdout] | [INFO] [stdout] 190 | ValidationError::MissingDependency(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 190 - ValidationError::MissingDependency(e) => write!(f, "{}", e), [INFO] [stdout] 190 + ValidationError::MissingDependency(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:191:51 [INFO] [stdout] | [INFO] [stdout] 191 | ValidationError::SelfDependency(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 191 - ValidationError::SelfDependency(e) => write!(f, "{}", e), [INFO] [stdout] 191 + ValidationError::SelfDependency(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:192:48 [INFO] [stdout] | [INFO] [stdout] 192 | ValidationError::InvalidName(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 192 - ValidationError::InvalidName(e) => write!(f, "{}", e), [INFO] [stdout] 192 + ValidationError::InvalidName(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:225:14 [INFO] [stdout] | [INFO] [stdout] 225 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 224 ~ pub fn validate_all, S: ::std::hash::BuildHasher>( [INFO] [stdout] 225 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/core/output_tests.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | //! Comprehensive tests for StageOutput. [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Comprehensive tests for StageOutput. [INFO] [stdout] 1 + //! Comprehensive tests for `StageOutput`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may truncate the value on targets with 64-bit wide pointers [INFO] [stdout] --> stageflow/src/websearch/config.rs:158:77 [INFO] [stdout] | [INFO] [stdout] 158 | let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 158 - let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] 158 + let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(i32::try_from(attempt)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may wrap around the value on targets with 32-bit wide pointers [INFO] [stdout] --> stageflow/src/websearch/config.rs:158:77 [INFO] [stdout] | [INFO] [stdout] 158 | let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: more than 3 bools in a struct [INFO] [stdout] --> stageflow/src/websearch/config.rs:172:1 [INFO] [stdout] | [INFO] [stdout] 172 | / pub struct ExtractionConfig { [INFO] [stdout] 173 | | /// Whether to preserve headings in markdown. [INFO] [stdout] 174 | | #[serde(default = "default_true")] [INFO] [stdout] 175 | | pub preserve_headings: bool, [INFO] [stdout] ... | [INFO] [stdout] 211 | | pub main_content_selectors: Vec, [INFO] [stdout] 212 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a state machine or refactoring bools into two-variant enums [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#struct_excessive_bools [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/core/output_tests.rs:162:25 [INFO] [stdout] | [INFO] [stdout] 162 | let debug_str = format!("{:?}", output); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 162 - let debug_str = format!("{:?}", output); [INFO] [stdout] 162 + let debug_str = format!("{output:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> stageflow/src/core/status.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / impl Default for StageKind { [INFO] [stdout] 25 | | fn default() -> Self { [INFO] [stdout] 26 | | Self::Work [INFO] [stdout] 27 | | } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 9 + #[derive(Default)] [INFO] [stdout] 10 | pub enum StageKind { [INFO] [stdout] 11 | /// A stage that transforms data (e.g., STT, TTS, LLM - change input form). [INFO] [stdout] ... [INFO] [stdout] 19 | /// A stage that performs actual work / side effects (e.g., Persist, Notify). [INFO] [stdout] 20 ~ #[default] [INFO] [stdout] 21 ~ Work, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> stageflow/src/core/status.rs:63:1 [INFO] [stdout] | [INFO] [stdout] 63 | / impl Default for StageStatus { [INFO] [stdout] 64 | | fn default() -> Self { [INFO] [stdout] 65 | | Self::Pending [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 46 + #[derive(Default)] [INFO] [stdout] 47 | pub enum StageStatus { [INFO] [stdout] 48 | /// Stage completed successfully. [INFO] [stdout] ... [INFO] [stdout] 58 | /// Stage is pending execution. [INFO] [stdout] 59 ~ #[default] [INFO] [stdout] 60 ~ Pending, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/events/backpressure.rs:68:14 [INFO] [stdout] | [INFO] [stdout] 68 | (dropped as f64 / total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/events/backpressure.rs:68:31 [INFO] [stdout] | [INFO] [stdout] 68 | (dropped as f64 / total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> stageflow/src/events/backpressure.rs:110:14 [INFO] [stdout] | [INFO] [stdout] 110 | on_drop: RwLock) + Send + Sync>>>, [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)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/events/backpressure.rs:139:18 [INFO] [stdout] | [INFO] [stdout] 139 | /// Sets the on_drop callback. [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 139 - /// Sets the on_drop callback. [INFO] [stdout] 139 + /// Sets the `on_drop` callback. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> stageflow/src/events/backpressure.rs:205:31 [INFO] [stdout] | [INFO] [stdout] 205 | if let Some(handle) = self.worker_handle.write().take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> stageflow/src/events/backpressure.rs:207:28 [INFO] [stdout] | [INFO] [stdout] 207 | let _ = handle.await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> stageflow/src/events/backpressure.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | / match self.tx.try_send(msg) { [INFO] [stdout] 252 | | Ok(()) => { [INFO] [stdout] 253 | | self.metrics.record_emit(); [INFO] [stdout] ... | [INFO] [stdout] 272 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else [INFO] [stdout] = note: `#[warn(clippy::single_match_else)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 251 ~ if let Ok(()) = self.tx.try_send(msg) { [INFO] [stdout] 252 + self.metrics.record_emit(); [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + self.metrics.record_drop(); [INFO] [stdout] 255 + [INFO] [stdout] 256 + let queue_size = self.queue_size(); [INFO] [stdout] 257 + let dropped_total = self.metrics.dropped(); [INFO] [stdout] 258 + [INFO] [stdout] 259 + warn!( [INFO] [stdout] 260 + event_type = %event_type, [INFO] [stdout] 261 + queue_size = %queue_size, [INFO] [stdout] 262 + dropped_total = %dropped_total, [INFO] [stdout] 263 + "Event dropped due to backpressure" [INFO] [stdout] 264 + ); [INFO] [stdout] 265 + [INFO] [stdout] 266 + if let Some(ref callback) = *self.on_drop.read() { [INFO] [stdout] 267 + callback(event_type, &data); [INFO] [stdout] 268 + } [INFO] [stdout] 269 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/events/backpressure.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | assert_eq!(metrics.drop_rate(), 0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] = note: `#[warn(clippy::float_cmp)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on an `Option` value [INFO] [stdout] --> stageflow/src/websearch/models.rs:151:72 [INFO] [stdout] | [INFO] [stdout] 151 | ... if let Some(domain_end) = base.find("://").map(|i| base[i + 3..].find('/').map(|j| i + 3 + j).unwrap_or(base.len())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 151 - if let Some(domain_end) = base.find("://").map(|i| base[i + 3..].find('/').map(|j| i + 3 + j).unwrap_or(base.len())) { [INFO] [stdout] 151 + if let Some(domain_end) = base.find("://").map(|i| base[i + 3..].find('/').map_or(base.len(), |j| i + 3 + j)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on an `Option` value [INFO] [stdout] --> stageflow/src/websearch/models.rs:155:37 [INFO] [stdout] | [INFO] [stdout] 155 | let base_path = base.rfind('/').map(|i| &base[..=i]).unwrap_or(base); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 155 - let base_path = base.rfind('/').map(|i| &base[..=i]).unwrap_or(base); [INFO] [stdout] 155 + let base_path = base.rfind('/').map_or(base, |i| &base[..=i]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/websearch/models.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | url = format!("{}{}", base_path, href); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 156 - url = format!("{}{}", base_path, href); [INFO] [stdout] 156 + url = format!("{base_path}{href}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/websearch/models.rs:159:23 [INFO] [stdout] | [INFO] [stdout] 159 | url = format!("https:{}", href); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 159 - url = format!("https:{}", href); [INFO] [stdout] 159 + url = format!("https:{href}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/websearch/models.rs:209:46 [INFO] [stdout] | [INFO] [stdout] 209 | /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 209 - /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] 209 + /// Type of action (e.g., "pagination", "`nav_link`", "content_link"). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/websearch/models.rs:209:58 [INFO] [stdout] | [INFO] [stdout] 209 | /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 209 - /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] 209 + /// Type of action (e.g., "pagination", "nav_link", "`content_link`"). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it is more idiomatic to use `Option<&T>` instead of `&Option` [INFO] [stdout] --> stageflow/src/events/sink.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | / fn log_event(&self, event_type: &str, data: &Option) { [INFO] [stdout] 78 | | match self.level { [INFO] [stdout] 79 | | Level::DEBUG => { [INFO] [stdout] 80 | | debug!( [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_option [INFO] [stdout] = note: `#[warn(clippy::ref_option)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - fn log_event(&self, event_type: &str, data: &Option) { [INFO] [stdout] 77 + fn log_event(&self, event_type: &str, data: Option<&serde_json::Value>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/analytics.rs:141:32 [INFO] [stdout] | [INFO] [stdout] 141 | /// Analytics sink adapter for EventSink. [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 141 - /// Analytics sink adapter for EventSink. [INFO] [stdout] 141 + /// Analytics sink adapter for `EventSink`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/models.rs:505:35 [INFO] [stdout] | [INFO] [stdout] 505 | self.links.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/models.rs:508:48 [INFO] [stdout] | [INFO] [stdout] 508 | self.navigation_actions.iter().map(|a| a.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `NavigationAction::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or(false)` on an `Option` value [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / self.content_type [INFO] [stdout] 35 | | .as_ref() [INFO] [stdout] 36 | | .map(|ct| ct.contains("text/html") || ct.contains("application/xhtml")) [INFO] [stdout] 37 | | .unwrap_or(false) [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `is_some_and()` instead [INFO] [stdout] | [INFO] [stdout] 36 - .map(|ct| ct.contains("text/html") || ct.contains("application/xhtml")) [INFO] [stdout] 37 - .unwrap_or(false) [INFO] [stdout] 36 + .is_some_and(|ct| ct.contains("text/html") || ct.contains("application/xhtml")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:84:35 [INFO] [stdout] | [INFO] [stdout] 84 | self.links.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:121:37 [INFO] [stdout] | [INFO] [stdout] 121 | self.actions.iter().map(|a| a.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::NavigationAction::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:130:39 [INFO] [stdout] | [INFO] [stdout] 130 | self.nav_links.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:133:41 [INFO] [stdout] | [INFO] [stdout] 133 | self.breadcrumbs.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:210:29 [INFO] [stdout] | [INFO] [stdout] 210 | /// No-op implementation of FetchObserver. [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 - /// No-op implementation of FetchObserver. [INFO] [stdout] 210 + /// No-op implementation of `FetchObserver`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | (self.completed as f64 / self.total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:43:38 [INFO] [stdout] | [INFO] [stdout] 43 | (self.completed as f64 / self.total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | matches as f64 / query_terms.len() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:171:22 [INFO] [stdout] | [INFO] [stdout] 171 | matches as f64 / query_terms.len() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:230:30 [INFO] [stdout] | [INFO] [stdout] 230 | let delay = base_delay * (attempt + 1) as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `async` for function with no await statements [INFO] [stdout] --> stageflow/src/events/backpressure.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | / pub async fn start(self: &Arc) { [INFO] [stdout] 149 | | if self.running.swap(true, Ordering::SeqCst) { [INFO] [stdout] 150 | | return; // Already running [INFO] [stdout] ... | [INFO] [stdout] 187 | | *self.worker_handle.write() = Some(handle); [INFO] [stdout] 188 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing the `async` from this function [INFO] [stdout] note: `await` used in an async block, which does not require the enclosing function to be `async` [INFO] [stdout] --> stageflow/src/events/backpressure.rs:170:18 [INFO] [stdout] | [INFO] [stdout] 170 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async [INFO] [stdout] = note: `#[warn(clippy::unused_async)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | PiiDetected, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> stageflow/src/lib.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | missing_docs, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | Profanity, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | Toxicity, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | ContentTooLong, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | RateLimited, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | BlockedTopic, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | InjectionAttempt, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | Custom, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub violation_type: ViolationType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub message: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub severity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub metadata: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub location: Option<(usize, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub passed: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub violations: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub transformed_content: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub metadata: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub id: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub session_id: Uuid, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub role: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub content: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub timestamp: DateTime, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub metadata: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub max_entries: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub max_tokens: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub include_system: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub recency_window_seconds: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub content: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub model: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub provider: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub input_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub output_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub latency_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub finish_reason: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub tool_calls: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub cached_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub text: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub confidence: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub language: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub is_final: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub duration_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub provider: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub model: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub latency_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub audio: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | pub duration_ms: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | pub format: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub provider: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | pub model: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub latency_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | pub channels: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | pub characters_processed: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | Pcm16, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | Pcm32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | Float32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub data: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub channels: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub format: AudioFormat, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub timestamp_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub sequence: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub is_final: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub metadata: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub total_items: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub dropped_items: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub max_queue_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | pub fill_percentage: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/providers.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | /// Converts to OTel attributes. [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 33 - /// Converts to OTel attributes. [INFO] [stdout] 33 + /// Converts to `OTel` attributes. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub blocked_puts: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub total_blocked_ms: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | Cycle(CycleError), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | MissingDependency(MissingDependencyError), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | SelfDependency(SelfDependencyError), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | InvalidName(InvalidNameError), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / match timeout(duration, cleanup()).await { [INFO] [stdout] 124 | | Ok(()) => true, [INFO] [stdout] 125 | | Err(_) => { [INFO] [stdout] 126 | | tracing::warn!("Cleanup timed out after {:?}", duration); [INFO] [stdout] ... | [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 123 ~ if let Ok(()) = timeout(duration, cleanup()).await { true } else { [INFO] [stdout] 124 + tracing::warn!("Cleanup timed out after {:?}", duration); [INFO] [stdout] 125 + false [INFO] [stdout] 126 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may truncate the value on targets with 64-bit wide pointers [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:184:44 [INFO] [stdout] | [INFO] [stdout] 184 | * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] = note: `#[warn(clippy::cast_possible_truncation)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 184 - * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] 184 + * self.backoff_multiplier.powi(i32::try_from(attempt)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may wrap around the value on targets with 32-bit wide pointers [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:184:44 [INFO] [stdout] | [INFO] [stdout] 184 | * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap [INFO] [stdout] = note: `#[warn(clippy::cast_possible_wrap)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/helpers/runtime.rs:376:25 [INFO] [stdout] | [INFO] [stdout] 376 | Err(format!("attempt {}", count)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 376 - Err(format!("attempt {}", count)) [INFO] [stdout] 376 + Err(format!("attempt {count}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:38:23 [INFO] [stdout] | [INFO] [stdout] 38 | let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casts from `i32` to `f64` can be expressed infallibly using `From` [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:38:49 [INFO] [stdout] | [INFO] [stdout] 38 | let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: an `as` cast can become silently lossy if the types change in the future [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stdout] = note: `#[warn(clippy::cast_lossless)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: use `f64::from` instead [INFO] [stdout] | [INFO] [stdout] 38 - let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] 38 + let samples = self.data.len() as f64 / (f64::from(bytes_per_sample) * self.channels as f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking stageflow-py v0.1.0 (/opt/rustwide/workdir/stageflow-py) [INFO] [stdout] warning: casts from `u8` to `f64` can be expressed infallibly using `From` [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:38:75 [INFO] [stdout] | [INFO] [stdout] 38 | let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: an `as` cast can become silently lossy if the types change in the future [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stdout] help: use `f64::from` instead [INFO] [stdout] | [INFO] [stdout] 38 - let samples = self.data.len() as f64 / (bytes_per_sample as f64 * self.channels as f64); [INFO] [stdout] 38 + let samples = self.data.len() as f64 / (bytes_per_sample as f64 * f64::from(self.channels)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casts from `u32` to `f64` can be expressed infallibly using `From` [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:39:20 [INFO] [stdout] | [INFO] [stdout] 39 | (samples / self.sample_rate as f64) * 1000.0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: an `as` cast can become silently lossy if the types change in the future [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stdout] help: use `f64::from` instead [INFO] [stdout] | [INFO] [stdout] 39 - (samples / self.sample_rate as f64) * 1000.0 [INFO] [stdout] 39 + (samples / f64::from(self.sample_rate)) * 1000.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:74:49 [INFO] [stdout] | [INFO] [stdout] 74 | if self.total_items == 0 { 0.0 } else { self.dropped_items as f64 / self.total_items as f64 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:74:77 [INFO] [stdout] | [INFO] [stdout] 74 | if self.total_items == 0 { 0.0 } else { self.dropped_items as f64 / self.total_items as f64 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:104:34 [INFO] [stdout] | [INFO] [stdout] 104 | stats.fill_percentage = (queue_size as f64 / max_size as f64) * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:104:54 [INFO] [stdout] | [INFO] [stdout] 104 | stats.fill_percentage = (queue_size as f64 / max_size as f64) * 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/timestamps.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | /// Re-export detect_unix_precision from utils [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 7 - /// Re-export detect_unix_precision from utils [INFO] [stdout] 7 + /// Re-export `detect_unix_precision` from utils [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | /// Detects if UUIDv7 timestamps deviate significantly from system clock. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 26 - /// Detects if UUIDv7 timestamps deviate significantly from system clock. [INFO] [stdout] 26 + /// Detects if `UUIDv7` timestamps deviate significantly from system clock. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:48:26 [INFO] [stdout] | [INFO] [stdout] 48 | /// Check skew for a UUIDv7. Returns skew in ms if significant, else None. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 48 - /// Check skew for a UUIDv7. Returns skew in ms if significant, else None. [INFO] [stdout] 48 + /// Check skew for a `UUIDv7`. Returns skew in ms if significant, else None. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `i64` may wrap around the value [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:62:57 [INFO] [stdout] | [INFO] [stdout] 62 | let uuid_time = DateTime::from_timestamp_millis(ts_ms as i64)?; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u64` to `f64` may cause a loss of precision (`u64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:64:20 [INFO] [stdout] | [INFO] [stdout] 64 | let skew = (system_time - uuid_time).num_milliseconds().unsigned_abs() as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:95:36 [INFO] [stdout] | [INFO] [stdout] 95 | ttl: Duration::seconds(ttl_seconds.max(1.0) as i64), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:192:20 [INFO] [stdout] | [INFO] [stdout] 192 | /// Generate a new UUIDv4. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 192 - /// Generate a new UUIDv4. [INFO] [stdout] 192 + /// Generate a new `UUIDv4`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/helpers/uuid_utils.rs:198:20 [INFO] [stdout] | [INFO] [stdout] 198 | /// Generate a new UUIDv7 (time-ordered) if available. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 198 - /// Generate a new UUIDv7 (time-ordered) if available. [INFO] [stdout] 198 + /// Generate a new `UUIDv7` (time-ordered) if available. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:76:22 [INFO] [stdout] | [INFO] [stdout] 76 | fn estimate_size(&self, ctx: &StageContext) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] = note: `#[warn(clippy::unused_self)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | / serde_json::to_string(snapshot) [INFO] [stdout] 80 | | .map(|s| s.len()) [INFO] [stdout] 81 | | .unwrap_or(0) [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 80 - .map(|s| s.len()) [INFO] [stdout] 81 - .unwrap_or(0) [INFO] [stdout] 80 + .map_or(0, |s| s.len()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `usize` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:99:25 [INFO] [stdout] | [INFO] [stdout] 99 | let threshold = (self.max_size_bytes as f64 * self.warning_threshold) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `usize` may lose the sign of the value [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:99:25 [INFO] [stdout] | [INFO] [stdout] 99 | let threshold = (self.max_size_bytes as f64 * self.warning_threshold) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] = note: `#[warn(clippy::cast_sign_loss)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/interceptors/hardening.rs:99:26 [INFO] [stdout] | [INFO] [stdout] 99 | let threshold = (self.max_size_bytes as f64 * self.warning_threshold) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> stageflow/src/interceptors/idempotency.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | fn generate_key(&self, ctx: &StageContext) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:55:30 [INFO] [stdout] | [INFO] [stdout] 55 | let millis = delay.as_millis() as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 55 - let millis = delay.as_millis() as u64; [INFO] [stdout] 55 + let millis = u64::try_from(delay.as_millis()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:59:30 [INFO] [stdout] | [INFO] [stdout] 59 | let millis = delay.as_millis() as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 59 - let millis = delay.as_millis() as u64; [INFO] [stdout] 59 + let millis = u64::try_from(delay.as_millis()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/interceptors/retry.rs:64:30 [INFO] [stdout] | [INFO] [stdout] 64 | let millis = delay.as_millis() as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 64 - let millis = delay.as_millis() as u64; [INFO] [stdout] 64 + let millis = u64::try_from(delay.as_millis()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> stageflow/src/observability/wide_events.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub fn build_stage_payload( [INFO] [stdout] 34 | | ctx: &C, [INFO] [stdout] 35 | | stage_name: &str, [INFO] [stdout] 36 | | status: StageStatus, [INFO] [stdout] ... | [INFO] [stdout] 42 | | extra: Option>, [INFO] [stdout] 43 | | ) -> serde_json::Value { [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)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> stageflow/src/observability/wide_events.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | stage_details: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type to: `&[serde_json::Value]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] = note: `#[warn(clippy::needless_pass_by_value)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> stageflow/src/observability/wide_events.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | / pub fn emit_stage_event( [INFO] [stdout] 109 | | &self, [INFO] [stdout] 110 | | ctx: &C, [INFO] [stdout] 111 | | stage_name: &str, [INFO] [stdout] ... | [INFO] [stdout] 118 | | extra: Option>, [INFO] [stdout] 119 | | ) { [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:57:58 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn add_stage_spec(&mut self, spec: StageSpec) -> Result<(), PipelineValidationError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | format!("Dependency '{}' not found", dep), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 72 - format!("Dependency '{}' not found", dep), [INFO] [stdout] 72 + format!("Dependency '{dep}' not found"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:93:46 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn compose(mut self, other: Self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:100:61 [INFO] [stdout] | [INFO] [stdout] 100 | return Err(PipelineValidationError::new(format!( [INFO] [stdout] | _____________________________________________________________^ [INFO] [stdout] 101 | | "Conflicting stage definitions for '{}'", [INFO] [stdout] 102 | | name [INFO] [stdout] 103 | | )) [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | ... format!("Stage '{}' has different definitions in composed pipelines", name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 108 - format!("Stage '{}' has different definitions in composed pipelines", name), [INFO] [stdout] 108 + format!("Stage '{name}' has different definitions in composed pipelines"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn build(self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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] --> stageflow/src/pipeline/builder.rs:153:32 [INFO] [stdout] | [INFO] [stdout] 153 | fn detect_cycles(&self) -> Result<(), CycleDetectedError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 168 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::CycleDetectedError`, 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] --> stageflow/src/pipeline/builder_helpers.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 33 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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] --> stageflow/src/pipeline/builder_helpers.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:62:34 [INFO] [stdout] | [INFO] [stdout] 62 | vec![&*Box::leak(format!("{}{}", prefix, i).into_boxed_str())] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 62 - vec![&*Box::leak(format!("{}{}", prefix, i).into_boxed_str())] [INFO] [stdout] 62 + vec![&*Box::leak(format!("{prefix}{i}").into_boxed_str())] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:67:45 [INFO] [stdout] | [INFO] [stdout] 67 | first_depends_on.iter().map(|s| s.to_string()).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:67:49 [INFO] [stdout] | [INFO] [stdout] 67 | first_depends_on.iter().map(|s| s.to_string()).collect() [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] = note: `#[warn(clippy::inefficient_to_string)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:96:55 [INFO] [stdout] | [INFO] [stdout] 96 | let deps: Vec = depends_on.iter().map(|s| s.to_string()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:96:59 [INFO] [stdout] | [INFO] [stdout] 96 | let deps: Vec = depends_on.iter().map(|s| s.to_string()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:124:10 [INFO] [stdout] | [INFO] [stdout] 124 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:128:54 [INFO] [stdout] | [INFO] [stdout] 128 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:128:58 [INFO] [stdout] | [INFO] [stdout] 128 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:164:10 [INFO] [stdout] | [INFO] [stdout] 164 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:168:54 [INFO] [stdout] | [INFO] [stdout] 168 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:168:58 [INFO] [stdout] | [INFO] [stdout] 168 | .with_dependencies(depends_on.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:183:56 [INFO] [stdout] | [INFO] [stdout] 183 | .with_dependencies(branch_names.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `to_string` on `&&str` [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:183:60 [INFO] [stdout] | [INFO] [stdout] 183 | .with_dependencies(branch_names.iter().map(|s| s.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing the receiver: `(*s).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: `&str` implements `ToString` through a slower blanket impl, but `str` has a fast specialization of `ToString` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/builder_helpers.rs:203:27 [INFO] [stdout] | [INFO] [stdout] 203 | pub fn build(self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | (timeout_seconds / callbacks.len() as f64).max(0.01) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: assigning the result of `Clone::clone()` may be inefficient [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | *self.completed.lock() = completed.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `(*self.completed.lock()).clone_from(&completed)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones [INFO] [stdout] = note: `#[warn(clippy::assigning_clones)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: assigning the result of `Clone::clone()` may be inefficient [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | *self.failed.lock() = failed.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `(*self.failed.lock()).clone_from(&failed)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:123:16 [INFO] [stdout] | [INFO] [stdout] 123 | callbacks: Mutex>>, [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: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | / impl std::fmt::Debug for CancellationToken { [INFO] [stdout] 127 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 128 | | f.debug_struct("CancellationToken") [INFO] [stdout] 129 | | .field("cancelled", &self.cancelled.load(Ordering::SeqCst)) [INFO] [stdout] ... | [INFO] [stdout] 133 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/pipeline/cancellation.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | callbacks: Mutex>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | //! Legacy StageGraph DAG execution engine. [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Legacy StageGraph DAG execution engine. [INFO] [stdout] 1 + //! Legacy `StageGraph` DAG execution engine. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | stage_order: Vec, [INFO] [stdout] | ^^^^^^^^^^^ help: consider changing the type to: `&[String]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:90:65 [INFO] [stdout] | [INFO] [stdout] 90 | /// allowing for maximum parallelism. This matches Python's StageGraph behavior. [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 90 - /// allowing for maximum parallelism. This matches Python's StageGraph behavior. [INFO] [stdout] 90 + /// allowing for maximum parallelism. This matches Python's `StageGraph` behavior. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many lines (111/100) [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub async fn execute( [INFO] [stdout] 92 | | &self, [INFO] [stdout] 93 | | ctx: Arc, [INFO] [stdout] 94 | | snapshot: ContextSnapshot, [INFO] [stdout] 95 | | ) -> Result { [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines [INFO] [stdout] = note: `#[warn(clippy::too_many_lines)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:151:21 [INFO] [stdout] | [INFO] [stdout] 151 | format!("Deadlocked stage graph; remaining stages: {:?}", pending) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 151 - format!("Deadlocked stage graph; remaining stages: {:?}", pending) [INFO] [stdout] 151 + format!("Deadlocked stage graph; remaining stages: {pending:?}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:167:45 [INFO] [stdout] | [INFO] [stdout] 167 | ... error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 167 - error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] 167 + error: Some(format!("Stage '{stage_name}' failed")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:179:45 [INFO] [stdout] | [INFO] [stdout] 179 | ... error: Some(format!("Stage '{}' cancelled pipeline", stage_name)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 179 - error: Some(format!("Stage '{}' cancelled pipeline", stage_name)), [INFO] [stdout] 179 + error: Some(format!("Stage '{stage_name}' cancelled pipeline")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:218:61 [INFO] [stdout] | [INFO] [stdout] 218 | return Err(StageflowError::Internal(format!("Task join error: {}", e))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 218 - return Err(StageflowError::Internal(format!("Task join error: {}", e))); [INFO] [stdout] 218 + return Err(StageflowError::Internal(format!("Task join error: {e}"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: adding items after statements is confusing, since items exist from the start of the scope [INFO] [stdout] --> stageflow/src/pipeline/dag.rs:331:5 [INFO] [stdout] | [INFO] [stdout] 331 | / fn visit( [INFO] [stdout] 332 | | node: &str, [INFO] [stdout] 333 | | stages: &HashMap, [INFO] [stdout] 334 | | visited: &mut HashSet, [INFO] [stdout] ... | [INFO] [stdout] 355 | | result.push(node.to_string()); [INFO] [stdout] 356 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements [INFO] [stdout] = note: `#[warn(clippy::items_after_statements)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | let now = SystemTime::now() [INFO] [stdout] | ___________________^ [INFO] [stdout] 44 | | .duration_since(UNIX_EPOCH) [INFO] [stdout] 45 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 46 | | .unwrap_or(0.0); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 45 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 46 - .unwrap_or(0.0); [INFO] [stdout] 45 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | self.completed_stages as f64 / self.total_stages as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/pipeline/failure_tolerance.rs:114:40 [INFO] [stdout] | [INFO] [stdout] 114 | self.completed_stages as f64 / self.total_stages as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:1:40 [INFO] [stdout] | [INFO] [stdout] 1 | //! Guard retry strategy utilities for UnifiedStageGraph. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! Guard retry strategy utilities for UnifiedStageGraph. [INFO] [stdout] 1 + //! Guard retry strategy utilities for `UnifiedStageGraph`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | / format!( [INFO] [stdout] 116 | | "Guard retry policy references unknown guard stage '{}'", [INFO] [stdout] 117 | | guard_name [INFO] [stdout] 118 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:122:28 [INFO] [stdout] | [INFO] [stdout] 122 | return Err(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 123 | | "Guard retry policy requires '{}' to be a GUARD stage", [INFO] [stdout] 124 | | guard_name [INFO] [stdout] 125 | | )); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/guard_retry.rs:136:28 [INFO] [stdout] | [INFO] [stdout] 136 | return Err(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 137 | | "Guard retry policy for '{}' cannot target itself", [INFO] [stdout] 138 | | guard_name [INFO] [stdout] 139 | | )); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/pipeline/idempotency.rs:34:19 [INFO] [stdout] | [INFO] [stdout] 34 | let now = SystemTime::now() [INFO] [stdout] | ___________________^ [INFO] [stdout] 35 | | .duration_since(UNIX_EPOCH) [INFO] [stdout] 36 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 37 | | .unwrap_or(0.0); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 36 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 37 - .unwrap_or(0.0); [INFO] [stdout] 36 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/pipeline/idempotency.rs:65:23 [INFO] [stdout] | [INFO] [stdout] 65 | let now = SystemTime::now() [INFO] [stdout] | _______________________^ [INFO] [stdout] 66 | | .duration_since(UNIX_EPOCH) [INFO] [stdout] 67 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 68 | | .unwrap_or(0.0); [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 67 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 68 - .unwrap_or(0.0); [INFO] [stdout] 67 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: more than 3 bools in a struct [INFO] [stdout] --> stageflow/src/pipeline/interfaces.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / pub struct StageCapabilities { [INFO] [stdout] 72 | | /// Whether the stage supports retries. [INFO] [stdout] 73 | | pub retryable: bool, [INFO] [stdout] 74 | | /// Maximum retry attempts if retryable. [INFO] [stdout] ... | [INFO] [stdout] 85 | | pub parallel_safe: bool, [INFO] [stdout] 86 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a state machine or refactoring bools into two-variant enums [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#struct_excessive_bools [INFO] [stdout] = note: `#[warn(clippy::struct_excessive_bools)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `u32` may truncate the value on targets with 64-bit wide pointers [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:147:73 [INFO] [stdout] | [INFO] [stdout] 147 | let exp_delay = base.saturating_mul(2u64.saturating_pow(attempt as u32)); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 147 - let exp_delay = base.saturating_mul(2u64.saturating_pow(attempt as u32)); [INFO] [stdout] 147 + let exp_delay = base.saturating_mul(2u64.saturating_pow(u32::try_from(attempt))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `u128` to `u64` may truncate the value [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:247:40 [INFO] [stdout] | [INFO] [stdout] 247 | ... delay_ms = delay.as_millis() as u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 247 - delay_ms = delay.as_millis() as u64, [INFO] [stdout] 247 + delay_ms = u64::try_from(delay.as_millis()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constructing a `Duration` using a smaller unit when a larger unit would be more readable [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:394:27 [INFO] [stdout] | [INFO] [stdout] 394 | assert_eq!(delay, Duration::from_millis(5000)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_suboptimal_units [INFO] [stdout] = note: `#[warn(clippy::duration_suboptimal_units)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: try using from_secs [INFO] [stdout] | [INFO] [stdout] 394 - assert_eq!(delay, Duration::from_millis(5000)); [INFO] [stdout] 394 + assert_eq!(delay, Duration::from_secs(5)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:470:25 [INFO] [stdout] | [INFO] [stdout] 470 | Err(format!("attempt {}", calls)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 470 - Err(format!("attempt {}", calls)) [INFO] [stdout] 470 + Err(format!("attempt {calls}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> stageflow/src/pipeline/retry.rs:504:17 [INFO] [stdout] | [INFO] [stdout] 504 | assert!(final_calls >= 1 && final_calls <= 4); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(1..=4).contains(&final_calls)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/spec.rs:71:31 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn validate(&self) -> Result<(), PipelineValidationError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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: unused variable: `reason` [INFO] [stdout] --> stageflow-py/src/lib.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | fn skip(reason: String) -> Self { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reason` [INFO] [stdout] --> stageflow-py/src/lib.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | fn cancel(reason: String) -> Self { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/spec.rs:102:44 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn new(name: impl Into) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `Err`-variant is at least 192 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::PipelineValidationError`, 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 a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn with_guard_retry_strategy(mut self, strategy: GuardRetryStrategy) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:66:81 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn with_guard_retry_strategy(mut self, strategy: GuardRetryStrategy) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: stageflow/src/errors.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | Validation(#[from] PipelineValidationError), [INFO] [stdout] | ------------------------------------------- the largest variant contains at least 192 bytes [INFO] [stdout] ... [INFO] [stdout] 31 | CycleDetected(#[from] CycleDetectedError), [INFO] [stdout] | ----------------------------------------- the variant `CycleDetected` contains at least 168 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `errors::StageflowError`, 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: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:89:63 [INFO] [stdout] | [INFO] [stdout] 89 | /// - Conditional stage execution (skip if inputs contain skip_reason) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 89 - /// - Conditional stage execution (skip if inputs contain skip_reason) [INFO] [stdout] 89 + /// - Conditional stage execution (skip if inputs contain `skip_reason`) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:90:27 [INFO] [stdout] | [INFO] [stdout] 90 | /// - Cancellation on StageStatus::Cancel [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 90 - /// - Cancellation on StageStatus::Cancel [INFO] [stdout] 90 + /// - Cancellation on `StageStatus::Cancel` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many lines (362/100) [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub async fn execute( [INFO] [stdout] 92 | | &self, [INFO] [stdout] 93 | | ctx: Arc, [INFO] [stdout] 94 | | snapshot: ContextSnapshot, [INFO] [stdout] 95 | | ) -> Result { [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:263:16 [INFO] [stdout] | [INFO] [stdout] 263 | if tasks.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tasks.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:269:53 [INFO] [stdout] | [INFO] [stdout] 269 | return Err(StageflowError::Internal(format!( [INFO] [stdout] | _____________________________________________________^ [INFO] [stdout] 270 | | "Deadlocked stage graph; remaining stages: {:?}", [INFO] [stdout] 271 | | pending [INFO] [stdout] 272 | | ))); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | / let result = match next { [INFO] [stdout] 277 | | Some(res) => res, [INFO] [stdout] 278 | | None => continue, [INFO] [stdout] 279 | | }; [INFO] [stdout] | |______________^ help: consider writing: `let Some(result) = next else { continue };` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else [INFO] [stdout] = note: `#[warn(clippy::manual_let_else)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:297:13 [INFO] [stdout] | [INFO] [stdout] 297 | / let spec = match specs.get(&stage_name) { [INFO] [stdout] 298 | | Some(s) => s, [INFO] [stdout] 299 | | None => continue, [INFO] [stdout] 300 | | }; [INFO] [stdout] | |______________^ help: consider writing: `let Some(spec) = specs.get(&stage_name) else { continue };` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:313:22 [INFO] [stdout] | [INFO] [stdout] 313 | .or_insert_with(GuardRetryRuntimeState::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reason` [INFO] [stdout] --> stageflow-py/src/lib.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | fn skip(reason: String) -> Self { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reason` [INFO] [stdout] --> stageflow-py/src/lib.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | fn cancel(reason: String) -> Self { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/pipeline/unified.rs:429:33 [INFO] [stdout] | [INFO] [stdout] 429 | error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 429 - error: Some(format!("Stage '{}' failed", stage_name)), [INFO] [stdout] 429 + error: Some(format!("Stage '{stage_name}' failed")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/stages/ports.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | //! StagePorts - Injected capabilities for stages (callbacks, services, db). [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1 - //! StagePorts - Injected capabilities for stages (callbacks, services, db). [INFO] [stdout] 1 + //! `StagePorts` - Injected capabilities for stages (callbacks, services, db). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `f64` may cause a loss of precision (`i64` is 64 bits wide, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/stages/result.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | (self.ended_at - self.started_at).num_milliseconds() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/stages/mod.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | / impl Debug for FnStage [INFO] [stdout] 60 | | where [INFO] [stdout] 61 | | F: Fn(&StageContext) -> StageOutput + Send + Sync, [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/stages/mod.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | func: F, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/stages/mod.rs:110:1 [INFO] [stdout] | [INFO] [stdout] 110 | / impl Debug for AsyncFnStage [INFO] [stdout] 111 | | where [INFO] [stdout] 112 | | F: Fn(StageContext) -> Fut + Send + Sync, [INFO] [stdout] 113 | | Fut: std::future::Future + Send, [INFO] [stdout] ... | [INFO] [stdout] 120 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/stages/mod.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | func: F, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `metadata` is never read [INFO] [stdout] --> stageflow-py/src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct PyStageOutput { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | metadata: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PyStageOutput` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `started_at`, `ended_at`, `data`, and `error` are never read [INFO] [stdout] --> stageflow-py/src/lib.rs:537:5 [INFO] [stdout] | [INFO] [stdout] 534 | pub struct PyStageResult { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 537 | started_at: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 538 | ended_at: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 539 | data: HashMap, [INFO] [stdout] | ^^^^ [INFO] [stdout] 540 | error: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PyStageResult` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/subpipeline/result.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | assert_eq!(result.duration_ms, 100.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/testing/assertions.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / assert_eq!( [INFO] [stdout] 54 | | actual, [INFO] [stdout] 55 | | Some(expected), [INFO] [stdout] 56 | | "Expected value {:?} for key '{}', got {:?}", [INFO] [stdout] ... | [INFO] [stdout] 59 | | actual [INFO] [stdout] 60 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/testing/assertions.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / assert!( [INFO] [stdout] 66 | | output.metadata.contains_key(key), [INFO] [stdout] 67 | | "Expected metadata to contain key '{}', but it doesn't", [INFO] [stdout] 68 | | key [INFO] [stdout] 69 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 58 | /// Builds a StageContext. [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 58 - /// Builds a StageContext. [INFO] [stdout] 58 + /// Builds a `StageContext`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `metadata` is never read [INFO] [stdout] --> stageflow-py/src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct PyStageOutput { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | metadata: HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PyStageOutput` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `started_at`, `ended_at`, `data`, and `error` are never read [INFO] [stdout] --> stageflow-py/src/lib.rs:537:5 [INFO] [stdout] | [INFO] [stdout] 534 | pub struct PyStageResult { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 537 | started_at: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 538 | ended_at: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 539 | data: HashMap, [INFO] [stdout] | ^^^^ [INFO] [stdout] 540 | error: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PyStageResult` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:111:35 [INFO] [stdout] | [INFO] [stdout] 111 | self.outputs.values().all(|o| o.is_success()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::super::core::output::StageOutput::is_success` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | self.outputs.values().any(|o| o.is_failure()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::super::core::output::StageOutput::is_failure` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/testing/fixtures.rs:157:34 [INFO] [stdout] | [INFO] [stdout] 157 | pipeline.stages.push(format!("stage_{}", i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 157 - pipeline.stages.push(format!("stage_{}", i)); [INFO] [stdout] 157 + pipeline.stages.push(format!("stage_{i}")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many lines (127/100) [INFO] [stdout] --> stageflow/src/tools/executor.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | / pub async fn execute( [INFO] [stdout] 48 | | &self, [INFO] [stdout] 49 | | input: ToolInput, [INFO] [stdout] 50 | | definition: &ToolDefinition, [INFO] [stdout] 51 | | ctx: &C, [INFO] [stdout] 52 | | ) -> Result { [INFO] [stdout] | |______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/tools/executor.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | format!("Behavior '{}' not allowed", behavior), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 76 - format!("Behavior '{}' not allowed", behavior), [INFO] [stdout] 76 + format!("Behavior '{behavior}' not allowed"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/tools/executor.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | / let metadata = match self.undo_store.get(action_id) { [INFO] [stdout] 206 | | Some(m) => m, [INFO] [stdout] 207 | | None => return Ok(false), [INFO] [stdout] 208 | | }; [INFO] [stdout] | |__________^ help: consider writing: `let Some(metadata) = self.undo_store.get(action_id) else { return Ok(false) };` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Debug` impl does not include all fields [INFO] [stdout] --> stageflow/src/tools/executor.rs:232:1 [INFO] [stdout] | [INFO] [stdout] 232 | / impl std::fmt::Debug for AdvancedToolExecutor { [INFO] [stdout] 233 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] 234 | | f.debug_struct("AdvancedToolExecutor") [INFO] [stdout] 235 | | .field("approval_timeout", &self.approval_timeout) [INFO] [stdout] ... | [INFO] [stdout] 238 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/tools/executor.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | registry: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/tools/executor.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | approval_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: this field is unused [INFO] [stdout] --> stageflow/src/tools/executor.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | undo_store: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: consider including all fields in this `Debug` impl [INFO] [stdout] = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this could be rewritten as `let...else` [INFO] [stdout] --> stageflow/src/tools/registry.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | / let func_obj = match func_obj { [INFO] [stdout] 162 | | Some(obj) => obj, [INFO] [stdout] 163 | | None => { [INFO] [stdout] 164 | | return Err(UnresolvedToolCall { [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#manual_let_else [INFO] [stdout] help: consider writing [INFO] [stdout] | [INFO] [stdout] 161 ~ let Some(func_obj) = func_obj else { [INFO] [stdout] 162 + return Err(UnresolvedToolCall { [INFO] [stdout] 163 + id, [INFO] [stdout] 164 + name: None, [INFO] [stdout] 165 + error: "Missing function wrapper".to_string(), [INFO] [stdout] 166 + raw: call.clone(), [INFO] [stdout] 167 + }); [INFO] [stdout] 168 + }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: these match arms have identical bodies [INFO] [stdout] --> stageflow/src/tools/registry.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | Some(_) => serde_json::json!({}), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 208 | None => serde_json::json!({}), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is unintentional make the arms return different values [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms [INFO] [stdout] = note: `#[warn(clippy::match_same_arms)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: otherwise merge the patterns into a single arm [INFO] [stdout] | [INFO] [stdout] 207 ~ Some(_) | None => serde_json::json!({}), [INFO] [stdout] 208 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/tools/registry.rs:216:24 [INFO] [stdout] | [INFO] [stdout] 216 | error: format!("No tool registered for action type '{}'", name_str), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 216 - error: format!("No tool registered for action type '{}'", name_str), [INFO] [stdout] 216 + error: format!("No tool registered for action type '{name_str}'"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or_else()` on an `Option` value [INFO] [stdout] --> stageflow/src/tools/undo.rs:46:26 [INFO] [stdout] | [INFO] [stdout] 46 | let created_at = dict [INFO] [stdout] | __________________________^ [INFO] [stdout] 47 | | .get("created_at") [INFO] [stdout] 48 | | .and_then(|v| v.as_str()) [INFO] [stdout] 49 | | .map(String::from) [INFO] [stdout] 50 | | .unwrap_or_else(crate::utils::iso_timestamp); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 46 ~ let created_at = dict [INFO] [stdout] 47 + .get("created_at") [INFO] [stdout] 48 ~ .and_then(|v| v.as_str()).map_or_else(crate::utils::iso_timestamp, String::from); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument is passed by value, but not consumed in the function body [INFO] [stdout] --> stageflow/src/tools/undo.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn store(&self, metadata: UndoMetadata) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value [INFO] [stdout] help: consider taking a reference instead [INFO] [stdout] | [INFO] [stdout] 97 | pub fn store(&self, metadata: &UndoMetadata) { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:81:20 [INFO] [stdout] | [INFO] [stdout] 81 | let int_part = abs_ts.trunc() as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:152:20 [INFO] [stdout] | [INFO] [stdout] 152 | let secs = value.trunc() as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `u32` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:153:21 [INFO] [stdout] | [INFO] [stdout] 153 | let nanos = ((value.fract().abs()) * 1_000_000_000.0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `u32` may lose the sign of the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:153:21 [INFO] [stdout] | [INFO] [stdout] 153 | let nanos = ((value.fract().abs()) * 1_000_000_000.0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `f64` to `i64` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:161:25 [INFO] [stdout] | [INFO] [stdout] 161 | let timestamp_i64 = value as i64; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:170:25 [INFO] [stdout] | [INFO] [stdout] 170 | let nanos = ((timestamp_i64 % 1000) * 1_000_000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 170 - let nanos = ((timestamp_i64 % 1000) * 1_000_000) as u32; [INFO] [stdout] 170 + let nanos = u32::try_from((timestamp_i64 % 1000) * 1_000_000); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may lose the sign of the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:170:25 [INFO] [stdout] | [INFO] [stdout] 170 | let nanos = ((timestamp_i64 % 1000) * 1_000_000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may truncate the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | let nanos = ((timestamp_i64 % 1_000_000) * 1000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 177 - let nanos = ((timestamp_i64 % 1_000_000) * 1000) as u32; [INFO] [stdout] 177 + let nanos = u32::try_from((timestamp_i64 % 1_000_000) * 1000); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `i64` to `u32` may lose the sign of the value [INFO] [stdout] --> stageflow/src/utils/timestamps.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | let nanos = ((timestamp_i64 % 1_000_000) * 1000) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:32:43 [INFO] [stdout] | [INFO] [stdout] 32 | /// Optional skew in milliseconds for UUIDv7. [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 32 - /// Optional skew in milliseconds for UUIDv7. [INFO] [stdout] 32 + /// Optional skew in milliseconds for `UUIDv7`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | listeners: RwLock>>, [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: called `map().unwrap_or()` on a `Result` value [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:84:19 [INFO] [stdout] | [INFO] [stdout] 84 | let now = std::time::SystemTime::now() [INFO] [stdout] | ___________________^ [INFO] [stdout] 85 | | .duration_since(std::time::UNIX_EPOCH) [INFO] [stdout] 86 | | .map(|d| d.as_secs_f64()) [INFO] [stdout] 87 | | .unwrap_or(0.0); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 86 - .map(|d| d.as_secs_f64()) [INFO] [stdout] 87 - .unwrap_or(0.0); [INFO] [stdout] 86 + .map_or(0.0, |d| d.as_secs_f64()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> stageflow/src/utils/uuid_utils.rs:93:15 [INFO] [stdout] | [INFO] [stdout] 93 | while window.front().map_or(false, |e| e.timestamp < cutoff) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 93 - while window.front().map_or(false, |e| e.timestamp < cutoff) { [INFO] [stdout] 93 + while window.front().is_some_and(|e| e.timestamp < cutoff) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 9 ~ pub fn validate_dag, S: ::std::hash::BuildHasher>( [INFO] [stdout] 10 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: adding items after statements is confusing, since items exist from the start of the scope [INFO] [stdout] --> stageflow/src/utils/validation.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / fn dfs>( [INFO] [stdout] 18 | | node: &str, [INFO] [stdout] 19 | | stages: &HashMap>, [INFO] [stdout] 20 | | visited: &mut HashSet, [INFO] [stdout] ... | [INFO] [stdout] 50 | | Ok(()) [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 78 ~ pub fn validate_dependencies_exist, S: ::std::hash::BuildHasher>( [INFO] [stdout] 79 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:121:14 [INFO] [stdout] | [INFO] [stdout] 121 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 120 ~ pub fn validate_no_self_dependencies, S: ::std::hash::BuildHasher>( [INFO] [stdout] 121 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:189:42 [INFO] [stdout] | [INFO] [stdout] 189 | ValidationError::Cycle(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 189 - ValidationError::Cycle(e) => write!(f, "{}", e), [INFO] [stdout] 189 + ValidationError::Cycle(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:190:54 [INFO] [stdout] | [INFO] [stdout] 190 | ValidationError::MissingDependency(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 190 - ValidationError::MissingDependency(e) => write!(f, "{}", e), [INFO] [stdout] 190 + ValidationError::MissingDependency(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:191:51 [INFO] [stdout] | [INFO] [stdout] 191 | ValidationError::SelfDependency(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 191 - ValidationError::SelfDependency(e) => write!(f, "{}", e), [INFO] [stdout] 191 + ValidationError::SelfDependency(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/utils/validation.rs:192:48 [INFO] [stdout] | [INFO] [stdout] 192 | ValidationError::InvalidName(e) => write!(f, "{}", e), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 192 - ValidationError::InvalidName(e) => write!(f, "{}", e), [INFO] [stdout] 192 + ValidationError::InvalidName(e) => write!(f, "{e}"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stdout] --> stageflow/src/utils/validation.rs:225:14 [INFO] [stdout] | [INFO] [stdout] 225 | stages: &HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stdout] help: add a type parameter for `BuildHasher` [INFO] [stdout] | [INFO] [stdout] 224 ~ pub fn validate_all, S: ::std::hash::BuildHasher>( [INFO] [stdout] 225 ~ stages: &HashMap, S>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may truncate the value on targets with 64-bit wide pointers [INFO] [stdout] --> stageflow/src/websearch/config.rs:158:77 [INFO] [stdout] | [INFO] [stdout] 158 | let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation [INFO] [stdout] help: ... or use `try_from` and handle the error accordingly [INFO] [stdout] | [INFO] [stdout] 158 - let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] 158 + let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(i32::try_from(attempt)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `i32` may wrap around the value on targets with 32-bit wide pointers [INFO] [stdout] --> stageflow/src/websearch/config.rs:158:77 [INFO] [stdout] | [INFO] [stdout] 158 | let delay = self.retry_delay_seconds * self.backoff_multiplier.powi(attempt as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: more than 3 bools in a struct [INFO] [stdout] --> stageflow/src/websearch/config.rs:172:1 [INFO] [stdout] | [INFO] [stdout] 172 | / pub struct ExtractionConfig { [INFO] [stdout] 173 | | /// Whether to preserve headings in markdown. [INFO] [stdout] 174 | | #[serde(default = "default_true")] [INFO] [stdout] 175 | | pub preserve_headings: bool, [INFO] [stdout] ... | [INFO] [stdout] 211 | | pub main_content_selectors: Vec, [INFO] [stdout] 212 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a state machine or refactoring bools into two-variant enums [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#struct_excessive_bools [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/config.rs:493:9 [INFO] [stdout] | [INFO] [stdout] 493 | assert_eq!(config.timeout_seconds, 30.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/config.rs:505:9 [INFO] [stdout] | [INFO] [stdout] 505 | assert_eq!(config.timeout_seconds, 60.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on an `Option` value [INFO] [stdout] --> stageflow/src/websearch/models.rs:151:72 [INFO] [stdout] | [INFO] [stdout] 151 | ... if let Some(domain_end) = base.find("://").map(|i| base[i + 3..].find('/').map(|j| i + 3 + j).unwrap_or(base.len())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 151 - if let Some(domain_end) = base.find("://").map(|i| base[i + 3..].find('/').map(|j| i + 3 + j).unwrap_or(base.len())) { [INFO] [stdout] 151 + if let Some(domain_end) = base.find("://").map(|i| base[i + 3..].find('/').map_or(base.len(), |j| i + 3 + j)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or()` on an `Option` value [INFO] [stdout] --> stageflow/src/websearch/models.rs:155:37 [INFO] [stdout] | [INFO] [stdout] 155 | let base_path = base.rfind('/').map(|i| &base[..=i]).unwrap_or(base); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `map_or(, )` instead [INFO] [stdout] | [INFO] [stdout] 155 - let base_path = base.rfind('/').map(|i| &base[..=i]).unwrap_or(base); [INFO] [stdout] 155 + let base_path = base.rfind('/').map_or(base, |i| &base[..=i]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/websearch/models.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | url = format!("{}{}", base_path, href); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 156 - url = format!("{}{}", base_path, href); [INFO] [stdout] 156 + url = format!("{base_path}{href}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> stageflow/src/websearch/models.rs:159:23 [INFO] [stdout] | [INFO] [stdout] 159 | url = format!("https:{}", href); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 159 - url = format!("https:{}", href); [INFO] [stdout] 159 + url = format!("https:{href}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/websearch/models.rs:209:46 [INFO] [stdout] | [INFO] [stdout] 209 | /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 209 - /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] 209 + /// Type of action (e.g., "pagination", "`nav_link`", "content_link"). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/websearch/models.rs:209:58 [INFO] [stdout] | [INFO] [stdout] 209 | /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 209 - /// Type of action (e.g., "pagination", "nav_link", "content_link"). [INFO] [stdout] 209 + /// Type of action (e.g., "pagination", "nav_link", "`content_link`"). [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/models.rs:505:35 [INFO] [stdout] | [INFO] [stdout] 505 | self.links.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/models.rs:508:48 [INFO] [stdout] | [INFO] [stdout] 508 | self.navigation_actions.iter().map(|a| a.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `NavigationAction::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map().unwrap_or(false)` on an `Option` value [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / self.content_type [INFO] [stdout] 35 | | .as_ref() [INFO] [stdout] 36 | | .map(|ct| ct.contains("text/html") || ct.contains("application/xhtml")) [INFO] [stdout] 37 | | .unwrap_or(false) [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or [INFO] [stdout] help: use `is_some_and()` instead [INFO] [stdout] | [INFO] [stdout] 36 - .map(|ct| ct.contains("text/html") || ct.contains("application/xhtml")) [INFO] [stdout] 37 - .unwrap_or(false) [INFO] [stdout] 36 + .is_some_and(|ct| ct.contains("text/html") || ct.contains("application/xhtml")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:84:35 [INFO] [stdout] | [INFO] [stdout] 84 | self.links.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:121:37 [INFO] [stdout] | [INFO] [stdout] 121 | self.actions.iter().map(|a| a.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::NavigationAction::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:130:39 [INFO] [stdout] | [INFO] [stdout] 130 | self.nav_links.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:133:41 [INFO] [stdout] | [INFO] [stdout] 133 | self.breadcrumbs.iter().map(|l| l.to_dict()).collect::>() [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `super::models::ExtractedLink::to_dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item in documentation is missing backticks [INFO] [stdout] --> stageflow/src/websearch/protocols.rs:210:29 [INFO] [stdout] | [INFO] [stdout] 210 | /// No-op implementation of FetchObserver. [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 - /// No-op implementation of FetchObserver. [INFO] [stdout] 210 + /// No-op implementation of `FetchObserver`. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | (self.completed as f64 / self.total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:43:38 [INFO] [stdout] | [INFO] [stdout] 43 | (self.completed as f64 / self.total as f64) * 100.0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | matches as f64 / query_terms.len() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:171:22 [INFO] [stdout] | [INFO] [stdout] 171 | matches as f64 / query_terms.len() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting `usize` to `f64` may cause a loss of precision (`usize` can be up to 64 bits wide depending on the target architecture, but `f64`'s mantissa is only 52 bits wide) [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:230:30 [INFO] [stdout] | [INFO] [stdout] 230 | let delay = base_delay * (attempt + 1) as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_precision_loss [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | assert_eq!(progress.percent(), 0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:277:9 [INFO] [stdout] | [INFO] [stdout] 277 | assert_eq!(progress.percent(), 10.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | assert_eq!(progress.percent(), 20.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:288:9 [INFO] [stdout] | [INFO] [stdout] 288 | assert_eq!(progress.percent(), 0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | assert_eq!(score_none, 0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | assert_eq!(score, 0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:391:9 [INFO] [stdout] | [INFO] [stdout] 391 | assert_eq!(calculate_retry_delay(0, 1.0, 30.0), 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 392 | assert_eq!(calculate_retry_delay(1, 1.0, 30.0), 2.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | assert_eq!(calculate_retry_delay(2, 1.0, 30.0), 3.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: strict comparison of `f32` or `f64` [INFO] [stdout] --> stageflow/src/websearch/run_utils.rs:394:9 [INFO] [stdout] | [INFO] [stdout] 394 | assert_eq!(calculate_retry_delay(100, 1.0, 30.0), 30.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> stageflow/src/lib.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` implied by `#[warn(clippy::all)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `async` for function with no await statements [INFO] [stdout] --> stageflow/src/events/backpressure.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | / pub async fn start(self: &Arc) { [INFO] [stdout] 149 | | if self.running.swap(true, Ordering::SeqCst) { [INFO] [stdout] 150 | | return; // Already running [INFO] [stdout] ... | [INFO] [stdout] 187 | | *self.worker_handle.write() = Some(handle); [INFO] [stdout] 188 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing the `async` from this function [INFO] [stdout] note: `await` used in an async block, which does not require the enclosing function to be `async` [INFO] [stdout] --> stageflow/src/events/backpressure.rs:170:18 [INFO] [stdout] | [INFO] [stdout] 170 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async [INFO] [stdout] = note: `#[warn(clippy::unused_async)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | PiiDetected, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> stageflow/src/lib.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | missing_docs, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | Profanity, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | Toxicity, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | ContentTooLong, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | RateLimited, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | BlockedTopic, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | InjectionAttempt, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | Custom, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub violation_type: ViolationType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub message: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub severity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub metadata: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub location: Option<(usize, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub passed: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub violations: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub transformed_content: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/guardrails.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub metadata: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub id: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub session_id: Uuid, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub role: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub content: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub timestamp: DateTime, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub metadata: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub max_entries: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub max_tokens: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub include_system: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/memory.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub recency_window_seconds: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub content: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub model: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub provider: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub input_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub output_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub latency_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub finish_reason: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub tool_calls: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub cached_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub text: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub confidence: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub language: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub is_final: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub duration_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub provider: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub model: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub latency_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub audio: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | pub duration_ms: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | pub format: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub provider: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | pub model: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub latency_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | pub channels: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/providers.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | pub characters_processed: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | Pcm16, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | Pcm32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | Float32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub data: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub channels: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub format: AudioFormat, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub timestamp_ms: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub sequence: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub is_final: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub metadata: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub total_items: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub dropped_items: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub max_queue_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | pub fill_percentage: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub blocked_puts: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> stageflow/src/helpers/streaming.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub total_blocked_ms: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | Cycle(CycleError), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | MissingDependency(MissingDependencyError), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | SelfDependency(SelfDependencyError), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a variant [INFO] [stdout] --> stageflow/src/utils/validation.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | InvalidName(InvalidNameError), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.04s [INFO] running `Command { std: "docker" "inspect" "906168dc2833927b0f83a14bc13ee9d7f262b98f0d1356e7b69c5af966e6c22b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "906168dc2833927b0f83a14bc13ee9d7f262b98f0d1356e7b69c5af966e6c22b", kill_on_drop: false }` [INFO] [stdout] 906168dc2833927b0f83a14bc13ee9d7f262b98f0d1356e7b69c5af966e6c22b