[INFO] cloning repository https://github.com/swaploard/sandbox [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/swaploard/sandbox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswaploard%2Fsandbox", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswaploard%2Fsandbox'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7c25376f6c56315e70beffdcaa0178ea9acb2fef [INFO] linting swaploard/sandbox against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswaploard%2Fsandbox" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/swaploard/sandbox [INFO] finished tweaking git repo https://github.com/swaploard/sandbox [INFO] tweaked toml for git repo https://github.com/swaploard/sandbox written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/swaploard/sandbox 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/swaploard/sandbox 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 witx v0.9.1 [INFO] [stderr] Downloaded winx v0.36.4 [INFO] [stderr] Downloaded shellexpand v2.1.2 [INFO] [stderr] Downloaded wat v1.235.0 [INFO] [stderr] Downloaded wasmtime-cranelift-shared v13.0.1 [INFO] [stderr] Downloaded wasmer-vbus v3.1.1 [INFO] [stderr] Downloaded wasmtime-versioned-export-macros v13.0.1 [INFO] [stderr] Downloaded wasmer-vnet v3.1.1 [INFO] [stderr] Downloaded wasm-bindgen-downcast-macros v0.1.1 [INFO] [stderr] Downloaded cranelift-codegen-shared v0.86.1 [INFO] [stderr] Downloaded cranelift-frontend v0.86.1 [INFO] [stderr] Downloaded enumset_derive v0.12.0 [INFO] [stderr] Downloaded wasmer-wasi-local-networking v3.1.1 [INFO] [stderr] Downloaded wasmer-derive v3.1.1 [INFO] [stderr] Downloaded wasm-bindgen-downcast v0.1.1 [INFO] [stderr] Downloaded cranelift-codegen-shared v0.100.1 [INFO] [stderr] Downloaded wasmer-vfs v3.1.1 [INFO] [stderr] Downloaded generational-arena v0.2.9 [INFO] [stderr] Downloaded wasmer-types v3.1.1 [INFO] [stderr] Downloaded wasmer-compiler v3.1.1 [INFO] [stderr] Downloaded cranelift-codegen-meta v0.86.1 [INFO] [stderr] Downloaded wasmer v3.1.1 [INFO] [stderr] Downloaded pulldown-cmark v0.9.6 [INFO] [stderr] Downloaded regalloc2 v0.3.2 [INFO] [stderr] Downloaded wasi-common v13.0.1 [INFO] [stderr] Downloaded wasmtime-runtime v13.0.1 [INFO] [stderr] Downloaded cranelift-wasm v0.100.1 [INFO] [stderr] Downloaded wasmparser v0.121.2 [INFO] [stderr] Downloaded wasmparser v0.112.0 [INFO] [stderr] Downloaded wasmtime v13.0.1 [INFO] [stderr] Downloaded wasmparser v0.235.0 [INFO] [stderr] Downloaded wasmtime-environ v13.0.1 [INFO] [stderr] Downloaded wast v235.0.0 [INFO] [stderr] Downloaded ittapi-sys v0.3.5 [INFO] [stderr] Downloaded cap-primitives v2.0.2 [INFO] [stderr] Downloaded winch-codegen v0.11.1 [INFO] [stderr] Downloaded wasm-encoder v0.235.0 [INFO] [stderr] Downloaded wasmtime-wasi v13.0.1 [INFO] [stderr] Downloaded cranelift-isle v0.86.1 [INFO] [stderr] Downloaded corosensei v0.1.4 [INFO] [stderr] Downloaded wit-parser v0.11.3 [INFO] [stderr] Downloaded wasmtime-cranelift v13.0.1 [INFO] [stderr] Downloaded cranelift-codegen-meta v0.100.1 [INFO] [stderr] Downloaded cranelift-isle v0.100.1 [INFO] [stderr] Downloaded wasmer-compiler-cranelift v3.1.1 [INFO] [stderr] Downloaded wasmer-vm v3.1.1 [INFO] [stderr] Downloaded wasmer-wit-parser v0.1.1 [INFO] [stderr] Downloaded wasmer-wasi-types v3.1.1 [INFO] [stderr] Downloaded wasmer-wasi v3.1.1 [INFO] [stderr] Downloaded cranelift-bforest v0.100.1 [INFO] [stderr] Downloaded system-interface v0.26.1 [INFO] [stderr] Downloaded cap-std v2.0.2 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.33.0 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.33.0 [INFO] [stderr] Downloaded io-extras v0.18.4 [INFO] [stderr] Downloaded cranelift-codegen v0.86.1 [INFO] [stderr] Downloaded windows_i686_msvc v0.33.0 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.33.0 [INFO] [stderr] Downloaded windows_i686_gnu v0.33.0 [INFO] [stderr] Downloaded wasmtime-cache v13.0.1 [INFO] [stderr] Downloaded cranelift-frontend v0.100.1 [INFO] [stderr] Downloaded wasmtime-jit v13.0.1 [INFO] [stderr] Downloaded wasm-encoder v0.32.0 [INFO] [stderr] Downloaded wasmprinter v0.2.80 [INFO] [stderr] Downloaded cranelift-entity v0.100.1 [INFO] [stderr] Downloaded cranelift-codegen v0.100.1 [INFO] [stderr] Downloaded wasmtime-types v13.0.1 [INFO] [stderr] Downloaded wast v35.0.2 [INFO] [stderr] Downloaded cranelift-bforest v0.86.1 [INFO] [stderr] Downloaded enumset v1.1.7 [INFO] [stderr] Downloaded cap-net-ext v2.0.2 [INFO] [stderr] Downloaded cap-time-ext v2.0.2 [INFO] [stderr] Downloaded wasi-cap-std-sync v13.0.1 [INFO] [stderr] Downloaded cap-rand v2.0.2 [INFO] [stderr] Downloaded ambient-authority v0.0.2 [INFO] [stderr] Downloaded wasmer-wit-bindgen-gen-rust-wasm v0.1.1 [INFO] [stderr] Downloaded io-lifetimes v2.0.4 [INFO] [stderr] Downloaded wasmtime-component-util v13.0.1 [INFO] [stderr] Downloaded wasmtime-winch v13.0.1 [INFO] [stderr] Downloaded wasmer-wit-bindgen-gen-rust v0.1.1 [INFO] [stderr] Downloaded cap-fs-ext v2.0.2 [INFO] [stderr] Downloaded fs-set-times v0.20.3 [INFO] [stderr] Downloaded wasmtime-jit-icache-coherence v13.0.1 [INFO] [stderr] Downloaded cranelift-control v0.100.1 [INFO] [stderr] Downloaded wasmtime-asm-macros v13.0.1 [INFO] [stderr] Downloaded wasmtime-wmemcheck v13.0.1 [INFO] [stderr] Downloaded wasmer-wit-bindgen-rust-impl v0.1.1 [INFO] [stderr] Downloaded wasmtime-wit-bindgen v13.0.1 [INFO] [stderr] Downloaded wasmtime-fiber v13.0.1 [INFO] [stderr] Downloaded cranelift-native v0.100.1 [INFO] [stderr] Downloaded wasmer-wit-bindgen-rust v0.1.1 [INFO] [stderr] Downloaded maybe-owned v0.3.4 [INFO] [stderr] Downloaded wasmtime-component-macro v13.0.1 [INFO] [stderr] Downloaded wasmtime-jit-debug v13.0.1 [INFO] [stderr] Downloaded wasmer-wit-bindgen-gen-core v0.1.1 [INFO] [stderr] Downloaded sptr v0.3.2 [INFO] [stderr] Downloaded wiggle-generate v13.0.1 [INFO] [stderr] Downloaded cranelift-entity v0.86.1 [INFO] [stderr] Downloaded ittapi v0.3.5 [INFO] [stderr] Downloaded wiggle-macro v13.0.1 [INFO] [stderr] Downloaded wiggle v13.0.1 [INFO] [stderr] Downloaded windows-sys v0.33.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] b284b396aad61e95d7f086f474aa35a66aff7acc5b1728d0ccd75a8c53681012 [INFO] running `Command { std: "docker" "start" "-a" "b284b396aad61e95d7f086f474aa35a66aff7acc5b1728d0ccd75a8c53681012", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b284b396aad61e95d7f086f474aa35a66aff7acc5b1728d0ccd75a8c53681012", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b284b396aad61e95d7f086f474aa35a66aff7acc5b1728d0ccd75a8c53681012", kill_on_drop: false }` [INFO] [stdout] b284b396aad61e95d7f086f474aa35a66aff7acc5b1728d0ccd75a8c53681012 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] f4fb50581bc7d9d600b922b600d00e2d4d3dec08d7dea48723bf7d10fe325c79 [INFO] running `Command { std: "docker" "start" "-a" "f4fb50581bc7d9d600b922b600d00e2d4d3dec08d7dea48723bf7d10fe325c79", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling cranelift-isle v0.100.1 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling cranelift-codegen-shared v0.100.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling io-lifetimes v2.0.4 [INFO] [stderr] Compiling cranelift-codegen-meta v0.100.1 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking arbitrary v1.4.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking hashbrown v0.13.2 [INFO] [stderr] Checking slice-group-by v0.3.1 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Compiling io-extras v0.18.4 [INFO] [stderr] Checking wasm-encoder v0.32.0 [INFO] [stderr] Checking wasmtime-component-util v13.0.1 [INFO] [stderr] Compiling pulldown-cmark v0.9.6 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Checking ambient-authority v0.0.2 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling cap-primitives v2.0.2 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Checking regalloc2 v0.9.3 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Checking maybe-owned v0.3.4 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Checking cranelift-control v0.100.1 [INFO] [stderr] Compiling wasm-encoder v0.235.0 [INFO] [stderr] Compiling cc v1.2.29 [INFO] [stderr] Compiling dirs-sys v0.3.7 [INFO] [stderr] Checking wasmtime-asm-macros v13.0.1 [INFO] [stderr] Compiling id-arena v2.2.1 [INFO] [stderr] Checking leb128fmt v0.1.0 [INFO] [stderr] Compiling cap-std v2.0.2 [INFO] [stderr] Compiling wast v35.0.2 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling dirs v4.0.0 [INFO] [stderr] Checking wasmtime-wmemcheck v13.0.1 [INFO] [stderr] Checking unicode-width v0.2.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling wasmtime-cache v13.0.1 [INFO] [stderr] Checking sptr v0.3.2 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling shellexpand v2.1.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking directories-next v2.0.0 [INFO] [stderr] Checking wasmtime-jit-icache-coherence v13.0.1 [INFO] [stderr] Checking cpp_demangle v0.3.5 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking rustc-demangle v0.1.25 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Compiling wasi-common v13.0.1 [INFO] [stderr] Checking wast v235.0.0 [INFO] [stderr] Compiling cap-fs-ext v2.0.2 [INFO] [stderr] Compiling system-interface v0.26.1 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking anstyle v1.0.11 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Checking cap-rand v2.0.2 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking predicates-core v1.0.9 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking fs-set-times v0.20.3 [INFO] [stderr] Compiling rstest_macros v0.18.2 [INFO] [stderr] Compiling zstd-sys v2.0.15+zstd.1.5.7 [INFO] [stderr] Compiling ittapi-sys v0.3.5 [INFO] [stderr] Compiling psm v0.1.26 [INFO] [stderr] Compiling wasmtime-wasi v13.0.1 [INFO] [stderr] Checking winnow v0.7.11 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking clap_builder v4.5.40 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Checking rmp v0.8.14 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking normalize-line-endings v0.3.0 [INFO] [stderr] Checking difflib v0.4.0 [INFO] [stderr] Compiling glob v0.3.2 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Checking termtree v0.5.1 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Compiling cranelift-codegen v0.100.1 [INFO] [stderr] Checking predicates-tree v1.0.12 [INFO] [stderr] Checking predicates v2.1.5 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking nix v0.30.1 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Checking clap v4.5.40 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking fragile v2.0.1 [INFO] [stderr] Checking downcast v0.11.0 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking ittapi v0.3.5 [INFO] [stderr] Checking memfd v0.6.4 [INFO] [stderr] Checking ctrlc v3.4.7 [INFO] [stderr] Checking cap-time-ext v2.0.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking cap-net-ext v2.0.2 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling wasmtime-versioned-export-macros v13.0.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling wasmtime-fiber v13.0.1 [INFO] [stderr] Compiling wasmtime-runtime v13.0.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking tokio v1.46.1 [INFO] [stderr] Checking wat v1.235.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling witx v0.9.1 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling mockall_derive v0.11.4 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling zstd-safe v5.0.2+zstd.1.5.2 [INFO] [stderr] Checking zstd v0.11.2+zstd.1.5.2 [INFO] [stderr] Compiling wiggle-generate v13.0.1 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling wiggle-macro v13.0.1 [INFO] [stderr] Checking rstest v0.18.2 [INFO] [stderr] Checking mockall v0.11.4 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Checking tokio-test v0.4.4 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling indexmap v2.10.0 [INFO] [stderr] Checking cranelift-entity v0.100.1 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking rmp-serde v1.3.0 [INFO] [stderr] Checking debugid v0.8.0 [INFO] [stderr] Checking cranelift-bforest v0.100.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Checking gimli v0.28.1 [INFO] [stderr] Checking wasmparser v0.112.0 [INFO] [stderr] Checking wasmparser v0.121.2 [INFO] [stderr] Checking object v0.32.2 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Checking fxprof-processed-profile v0.6.0 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Compiling wit-parser v0.11.3 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Compiling wasmtime-wit-bindgen v13.0.1 [INFO] [stderr] Checking addr2line v0.21.0 [INFO] [stderr] Checking wasmtime-types v13.0.1 [INFO] [stderr] Compiling wasmtime-component-macro v13.0.1 [INFO] [stderr] Checking wasmprinter v0.2.80 [INFO] [stderr] Checking wasmtime-jit-debug v13.0.1 [INFO] [stderr] Checking wasmtime-environ v13.0.1 [INFO] [stderr] Checking wasmtime-jit v13.0.1 [INFO] [stderr] Checking cranelift-native v0.100.1 [INFO] [stderr] Checking cranelift-frontend v0.100.1 [INFO] [stderr] Checking wasmtime-cranelift-shared v13.0.1 [INFO] [stderr] Checking cranelift-wasm v0.100.1 [INFO] [stderr] Checking wasmtime-cranelift v13.0.1 [INFO] [stderr] Checking wasmtime v13.0.1 [INFO] [stderr] Checking wiggle v13.0.1 [INFO] [stderr] Checking wasi-cap-std-sync v13.0.1 [INFO] [stderr] Checking wasm-sandbox v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/security/capabilities.rs:480:39 [INFO] [stdout] | [INFO] [stdout] 480 | fn verify(&self, operation: &str, params: &[&str]) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/security/capabilities.rs:522:39 [INFO] [stdout] | [INFO] [stdout] 522 | fn verify(&self, operation: &str, params: &[&str]) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/communication/channels.rs:142:24 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn send(&self, message: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/communication/rpc.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let request = RpcRequest { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `threads` [INFO] [stdout] --> src/wrappers/http_server.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 251 | let threads = config.threads.unwrap_or(4); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threads` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout` [INFO] [stdout] --> src/wrappers/http_server.rs:252:13 [INFO] [stdout] | [INFO] [stdout] 252 | let timeout = config.timeout_seconds.unwrap_or(30); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tls_config` [INFO] [stdout] --> src/wrappers/http_server.rs:419:21 [INFO] [stdout] | [INFO] [stdout] 419 | if let Some(tls_config) = &config.cors { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tls_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allowed_origins` [INFO] [stdout] --> src/wrappers/http_server.rs:461:17 [INFO] [stdout] | [INFO] [stdout] 461 | let allowed_origins = cors_config.allowed_origins [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_origins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allowed_methods` [INFO] [stdout] --> src/wrappers/http_server.rs:467:17 [INFO] [stdout] | [INFO] [stdout] 467 | let allowed_methods = cors_config.allowed_methods [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_methods` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allowed_headers` [INFO] [stdout] --> src/wrappers/http_server.rs:473:17 [INFO] [stdout] | [INFO] [stdout] 473 | let allowed_headers = cors_config.allowed_headers [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_headers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app_path` [INFO] [stdout] --> src/wrappers/mcp_server.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | let app_path = spec.app_path.to_string_lossy(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/wrappers/mcp_server.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | let args = spec.arguments.join(", "); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/security/capabilities.rs:480:39 [INFO] [stdout] | [INFO] [stdout] 480 | fn verify(&self, operation: &str, params: &[&str]) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/security/capabilities.rs:522:39 [INFO] [stdout] | [INFO] [stdout] 522 | fn verify(&self, operation: &str, params: &[&str]) -> Result<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `options` [INFO] [stdout] --> src/compiler/wasi.rs:94:55 [INFO] [stdout] | [INFO] [stdout] 94 | fn generate_wasi_wrapper(&self, wasm_path: &Path, options: &CompilerOptions) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/communication/channels.rs:142:24 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn send(&self, message: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/communication/rpc.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let request = RpcRequest { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `threads` [INFO] [stdout] --> src/wrappers/http_server.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 251 | let threads = config.threads.unwrap_or(4); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threads` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout` [INFO] [stdout] --> src/wrappers/http_server.rs:252:13 [INFO] [stdout] | [INFO] [stdout] 252 | let timeout = config.timeout_seconds.unwrap_or(30); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tls_config` [INFO] [stdout] --> src/wrappers/http_server.rs:419:21 [INFO] [stdout] | [INFO] [stdout] 419 | if let Some(tls_config) = &config.cors { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tls_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allowed_origins` [INFO] [stdout] --> src/wrappers/http_server.rs:461:17 [INFO] [stdout] | [INFO] [stdout] 461 | let allowed_origins = cors_config.allowed_origins [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_origins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allowed_methods` [INFO] [stdout] --> src/wrappers/http_server.rs:467:17 [INFO] [stdout] | [INFO] [stdout] 467 | let allowed_methods = cors_config.allowed_methods [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_methods` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allowed_headers` [INFO] [stdout] --> src/wrappers/http_server.rs:473:17 [INFO] [stdout] | [INFO] [stdout] 473 | let allowed_headers = cors_config.allowed_headers [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed_headers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app_path` [INFO] [stdout] --> src/wrappers/mcp_server.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | let app_path = spec.app_path.to_string_lossy(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/wrappers/mcp_server.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | let args = spec.arguments.join(", "); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `module_id` is never read [INFO] [stdout] --> src/runtime/wasmtime.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct WasmtimeInstance { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 115 | module_id: ModuleId, [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 `host_to_guest`, `guest_to_host`, and `capacity` are never read [INFO] [stdout] --> src/communication/channels.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct GuestChannelInterface { [INFO] [stdout] | --------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 128 | host_to_guest: VecDeque>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | guest_to_host: VecDeque>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | capacity: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `channel` and `call_id` are never read [INFO] [stdout] --> src/communication/rpc.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct JsonRpcChannel { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 12 | /// Communication channel [INFO] [stdout] 13 | channel: Arc, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | call_id: Mutex, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `next_call_id`, `serialize`, and `deserialize` are never used [INFO] [stdout] --> src/communication/rpc.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl JsonRpcChannel { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | fn next_call_id(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn serialize(&self, value: &T) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn deserialize(&self, data: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/runtime/mod.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | return Ok(Box::new(crate::runtime::wasmtime::WasmtimeRuntime::new(config)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 275 - return Ok(Box::new(crate::runtime::wasmtime::WasmtimeRuntime::new(config)?)); [INFO] [stdout] 275 + Ok(Box::new(crate::runtime::wasmtime::WasmtimeRuntime::new(config)?)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `WasmtimeFunctionCaller` [INFO] [stdout] --> src/runtime/wasmtime.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | / pub fn new() -> Self { [INFO] [stdout] 153 | | Self [INFO] [stdout] 154 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 151 + impl Default for WasmtimeFunctionCaller { [INFO] [stdout] 152 + fn default() -> Self { [INFO] [stdout] 153 + Self::new() [INFO] [stdout] 154 + } [INFO] [stdout] 155 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `options` [INFO] [stdout] --> src/compiler/wasi.rs:94:55 [INFO] [stdout] | [INFO] [stdout] 94 | fn generate_wasi_wrapper(&self, wasm_path: &Path, options: &CompilerOptions) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `MemoryTracker` [INFO] [stdout] --> src/runtime/wasm_common.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / pub fn new() -> Self { [INFO] [stdout] 44 | | Self { [INFO] [stdout] 45 | | current: AtomicU64::new(0), [INFO] [stdout] 46 | | peak: AtomicU64::new(0), [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 41 + impl Default for MemoryTracker { [INFO] [stdout] 42 + fn default() -> Self { [INFO] [stdout] 43 + Self::new() [INFO] [stdout] 44 + } [INFO] [stdout] 45 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/security/capabilities.rs:136:20 [INFO] [stdout] | [INFO] [stdout] 136 | if params.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `params.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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | / impl Default for NetworkCapability { [INFO] [stdout] 75 | | fn default() -> Self { [INFO] [stdout] 76 | | Self::None [INFO] [stdout] 77 | | } [INFO] [stdout] 78 | | } [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: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 57 + #[derive(Default)] [INFO] [stdout] 58 | pub enum NetworkCapability { [INFO] [stdout] 59 | /// No network access allowed [INFO] [stdout] 60 ~ #[default] [INFO] [stdout] 61 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:99:1 [INFO] [stdout] | [INFO] [stdout] 99 | / impl Default for FilesystemCapability { [INFO] [stdout] 100 | | fn default() -> Self { [INFO] [stdout] 101 | | Self { [INFO] [stdout] 102 | | readable_dirs: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 82 + #[derive(Default)] [INFO] [stdout] 83 | pub struct FilesystemCapability { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:127:1 [INFO] [stdout] | [INFO] [stdout] 127 | / impl Default for EnvironmentCapability { [INFO] [stdout] 128 | | fn default() -> Self { [INFO] [stdout] 129 | | Self::None [INFO] [stdout] 130 | | } [INFO] [stdout] 131 | | } [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] 113 + #[derive(Default)] [INFO] [stdout] 114 | pub enum EnvironmentCapability { [INFO] [stdout] 115 | /// No environment variable access [INFO] [stdout] 116 ~ #[default] [INFO] [stdout] 117 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:146:1 [INFO] [stdout] | [INFO] [stdout] 146 | / impl Default for ProcessCapability { [INFO] [stdout] 147 | | fn default() -> Self { [INFO] [stdout] 148 | | Self::None [INFO] [stdout] 149 | | } [INFO] [stdout] 150 | | } [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] 135 + #[derive(Default)] [INFO] [stdout] 136 | pub enum ProcessCapability { [INFO] [stdout] 137 | /// No process creation allowed [INFO] [stdout] 138 ~ #[default] [INFO] [stdout] 139 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | / impl Default for TimeCapability { [INFO] [stdout] 163 | | fn default() -> Self { [INFO] [stdout] 164 | | Self::ReadOnly [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | } [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] 154 + #[derive(Default)] [INFO] [stdout] 155 | pub enum TimeCapability { [INFO] [stdout] 156 | /// Read-only time access [INFO] [stdout] 157 ~ #[default] [INFO] [stdout] 158 ~ ReadOnly, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:181:1 [INFO] [stdout] | [INFO] [stdout] 181 | / impl Default for RandomCapability { [INFO] [stdout] 182 | | fn default() -> Self { [INFO] [stdout] 183 | | Self::PseudoOnly [INFO] [stdout] 184 | | } [INFO] [stdout] 185 | | } [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] 170 + #[derive(Default)] [INFO] [stdout] 171 | pub enum RandomCapability { [INFO] [stdout] 172 | /// No random number generation [INFO] [stdout] ... [INFO] [stdout] 175 | /// Pseudo-random number generation only [INFO] [stdout] 176 ~ #[default] [INFO] [stdout] 177 ~ PseudoOnly, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/mod.rs:28:19 [INFO] [stdout] | [INFO] [stdout] 28 | function: Box Result + Send + Sync + 'static>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/mod.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | function: Box Result> + Send + Sync + 'static>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/communication/io.rs:111:26 [INFO] [stdout] | [INFO] [stdout] 111 | .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{:?}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 111 - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{:?}", e))) [INFO] [stdout] 111 + .map_err(|e| io::Error::other(format!("{:?}", e))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `module_id` is never read [INFO] [stdout] --> src/runtime/wasmtime.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct WasmtimeInstance { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 115 | module_id: ModuleId, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/communication/io.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | Err(e) => Err(io::Error::new(io::ErrorKind::Other, format!("{:?}", e))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 152 - Err(e) => Err(io::Error::new(io::ErrorKind::Other, format!("{:?}", e))), [INFO] [stdout] 152 + Err(e) => Err(io::Error::other(format!("{:?}", e))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `host_to_guest`, `guest_to_host`, and `capacity` are never read [INFO] [stdout] --> src/communication/channels.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct GuestChannelInterface { [INFO] [stdout] | --------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 128 | host_to_guest: VecDeque>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | guest_to_host: VecDeque>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | capacity: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `channel` and `call_id` are never read [INFO] [stdout] --> src/communication/rpc.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct JsonRpcChannel { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 12 | /// Communication channel [INFO] [stdout] 13 | channel: Arc, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | call_id: Mutex, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `next_call_id`, `serialize`, and `deserialize` are never used [INFO] [stdout] --> src/communication/rpc.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl JsonRpcChannel { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | fn next_call_id(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn serialize(&self, value: &T) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn deserialize(&self, data: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/rpc.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | host_functions: Mutex Result + 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] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:42:22 [INFO] [stdout] | [INFO] [stdout] 42 | .map_err(|e| Error::Json(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:48:22 [INFO] [stdout] | [INFO] [stdout] 48 | .map_err(|e| Error::Json(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:98:63 [INFO] [stdout] | [INFO] [stdout] 98 | params: serde_json::from_str(params_json).map_err(|e| Error::Json(e))?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:109:50 [INFO] [stdout] | [INFO] [stdout] 109 | serde_json::to_string(&response).map_err(|e| Error::Json(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SharedMemoryManager` [INFO] [stdout] --> src/communication/memory.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub fn new() -> Self { [INFO] [stdout] 88 | | Self { [INFO] [stdout] 89 | | regions: Mutex::new(HashMap::new()), [INFO] [stdout] 90 | | } [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 85 + impl Default for SharedMemoryManager { [INFO] [stdout] 86 + fn default() -> Self { [INFO] [stdout] 87 + Self::new() [INFO] [stdout] 88 + } [INFO] [stdout] 89 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/runtime/mod.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | return Ok(Box::new(crate::runtime::wasmtime::WasmtimeRuntime::new(config)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 275 - return Ok(Box::new(crate::runtime::wasmtime::WasmtimeRuntime::new(config)?)); [INFO] [stdout] 275 + Ok(Box::new(crate::runtime::wasmtime::WasmtimeRuntime::new(config)?)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/memory_channel.rs:256:16 [INFO] [stdout] | [INFO] [stdout] 256 | functions: Mutex Result> + 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] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `WasmtimeFunctionCaller` [INFO] [stdout] --> src/runtime/wasmtime.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | / pub fn new() -> Self { [INFO] [stdout] 153 | | Self [INFO] [stdout] 154 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 151 + impl Default for WasmtimeFunctionCaller { [INFO] [stdout] 152 + fn default() -> Self { [INFO] [stdout] 153 + Self::new() [INFO] [stdout] 154 + } [INFO] [stdout] 155 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/wrappers/cli_tool.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | let cargo_toml = format!( [INFO] [stdout] | __________________________^ [INFO] [stdout] 48 | | r#"[package] [INFO] [stdout] 49 | | name = "cli-wrapper" [INFO] [stdout] 50 | | version = "0.1.0" [INFO] [stdout] ... | [INFO] [stdout] 61 | | "# [INFO] [stdout] 62 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 47 ~ let cargo_toml = r#"[package] [INFO] [stdout] 48 + name = "cli-wrapper" [INFO] [stdout] 49 + version = "0.1.0" [INFO] [stdout] 50 + edition = "2021" [INFO] [stdout] 51 + [INFO] [stdout] 52 + [dependencies] [INFO] [stdout] 53 + wasm-sandbox = { path = "../.." } [INFO] [stdout] 54 + serde = { version = "1.0", features = ["derive"] } [INFO] [stdout] 55 + serde_json = "1.0" [INFO] [stdout] 56 + tokio = { version = "1.0", features = ["full"] } [INFO] [stdout] 57 + anyhow = "1.0" [INFO] [stdout] 58 + tracing = "0.1" [INFO] [stdout] 59 + tracing-subscriber = "0.3" [INFO] [stdout] 60 ~ "#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/wrappers/cli_tool.rs:72:19 [INFO] [stdout] | [INFO] [stdout] 72 | .args(&["build", "--target", "wasm32-wasi", "--release"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "wasm32-wasi", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `MemoryTracker` [INFO] [stdout] --> src/runtime/wasm_common.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / pub fn new() -> Self { [INFO] [stdout] 44 | | Self { [INFO] [stdout] 45 | | current: AtomicU64::new(0), [INFO] [stdout] 46 | | peak: AtomicU64::new(0), [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 41 + impl Default for MemoryTracker { [INFO] [stdout] 42 + fn default() -> Self { [INFO] [stdout] 43 + Self::new() [INFO] [stdout] 44 + } [INFO] [stdout] 45 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/wrappers/mcp_server.rs:46:26 [INFO] [stdout] | [INFO] [stdout] 46 | let cargo_toml = format!( [INFO] [stdout] | __________________________^ [INFO] [stdout] 47 | | r#"[package] [INFO] [stdout] 48 | | name = "mcp-server-wrapper" [INFO] [stdout] 49 | | version = "0.1.0" [INFO] [stdout] ... | [INFO] [stdout] 65 | | "# [INFO] [stdout] 66 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 46 ~ let cargo_toml = r#"[package] [INFO] [stdout] 47 + name = "mcp-server-wrapper" [INFO] [stdout] 48 + version = "0.1.0" [INFO] [stdout] 49 + edition = "2021" [INFO] [stdout] 50 + [INFO] [stdout] 51 + [dependencies] [INFO] [stdout] 52 + wasm-sandbox = { path = "../.." } [INFO] [stdout] 53 + serde = { version = "1.0", features = ["derive"] } [INFO] [stdout] 54 + serde_json = "1.0" [INFO] [stdout] 55 + tokio = { version = "1.0", features = ["full"] } [INFO] [stdout] 56 + anyhow = "1.0" [INFO] [stdout] 57 + tracing = "0.1" [INFO] [stdout] 58 + tracing-subscriber = "0.3" [INFO] [stdout] 59 + model-context-protocol = "0.1.0" [INFO] [stdout] 60 + axum = "0.6.0" [INFO] [stdout] 61 + tower = "0.4.0" [INFO] [stdout] 62 + tower-http = { version = "0.4.0", features = ["cors"] } [INFO] [stdout] 63 + jsonschema = "0.17.0" [INFO] [stdout] 64 ~ "#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/wrappers/mcp_server.rs:76:19 [INFO] [stdout] | [INFO] [stdout] 76 | .args(&["build", "--target", "wasm32-wasi", "--release"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "wasm32-wasi", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/wrappers/generic.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let cargo_toml = format!( [INFO] [stdout] | __________________________^ [INFO] [stdout] 39 | | r#"[package] [INFO] [stdout] 40 | | name = "generic-wrapper" [INFO] [stdout] 41 | | version = "0.1.0" [INFO] [stdout] ... | [INFO] [stdout] 52 | | "# [INFO] [stdout] 53 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 38 ~ let cargo_toml = r#"[package] [INFO] [stdout] 39 + name = "generic-wrapper" [INFO] [stdout] 40 + version = "0.1.0" [INFO] [stdout] 41 + edition = "2021" [INFO] [stdout] 42 + [INFO] [stdout] 43 + [dependencies] [INFO] [stdout] 44 + wasm-sandbox = { path = "../.." } [INFO] [stdout] 45 + serde = { version = "1.0", features = ["derive"] } [INFO] [stdout] 46 + serde_json = "1.0" [INFO] [stdout] 47 + tokio = { version = "1.0", features = ["full"] } [INFO] [stdout] 48 + anyhow = "1.0" [INFO] [stdout] 49 + tracing = "0.1" [INFO] [stdout] 50 + tracing-subscriber = "0.3" [INFO] [stdout] 51 ~ "#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/wrappers/generic.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | .args(&["build", "--target", "wasm32-wasi", "--release"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "wasm32-wasi", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `HttpServerGenerator` [INFO] [stdout] --> src/wrappers/http_server_impl.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / pub fn new() -> Self { [INFO] [stdout] 76 | | Self { [INFO] [stdout] 77 | | config: HttpServerConfig::default(), [INFO] [stdout] 78 | | compiler: CargoCompiler::new(), [INFO] [stdout] 79 | | } [INFO] [stdout] 80 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 73 + impl Default for HttpServerGenerator { [INFO] [stdout] 74 + fn default() -> Self { [INFO] [stdout] 75 + Self::new() [INFO] [stdout] 76 + } [INFO] [stdout] 77 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/security/capabilities.rs:136:20 [INFO] [stdout] | [INFO] [stdout] 136 | if params.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `params.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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `CargoCompiler` [INFO] [stdout] --> src/compiler/mod.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn new() -> Self { [INFO] [stdout] 124 | | Self [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 121 + impl Default for CargoCompiler { [INFO] [stdout] 122 + fn default() -> Self { [INFO] [stdout] 123 + Self::new() [INFO] [stdout] 124 + } [INFO] [stdout] 125 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/compiler/cargo.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / impl Default for EnhancedCargoCompiler { [INFO] [stdout] 29 | | fn default() -> Self { [INFO] [stdout] 30 | | Self { [INFO] [stdout] 31 | | env_vars: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 38 | | } [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 [INFO] [stdout] | [INFO] [stdout] 11 + #[derive(Default)] [INFO] [stdout] 12 | pub struct EnhancedCargoCompiler { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/compiler/cargo.rs:319:22 [INFO] [stdout] | [INFO] [stdout] 319 | let inputs = format!( [INFO] [stdout] | ______________________^ [INFO] [stdout] 320 | | "{}:{}:{}:{}:{}:{}", [INFO] [stdout] 321 | | cargo_toml, [INFO] [stdout] 322 | | cargo_lock, [INFO] [stdout] ... | [INFO] [stdout] 326 | | options.features.join(",") [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/compiler/wasi.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | config_str.push_str("}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `config_str.push('}')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/compiler/wasi.rs:331:13 [INFO] [stdout] | [INFO] [stdout] 331 | if !file_path.extension().map_or(false, |ext| ext == "rs") { [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)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 331 - if !file_path.extension().map_or(false, |ext| ext == "rs") { [INFO] [stdout] 331 + if !file_path.extension().is_some_and(|ext| ext == "rs") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SimpleTemplateRenderer` [INFO] [stdout] --> src/templates/mod.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn new() -> Self { [INFO] [stdout] 30 | | Self { [INFO] [stdout] 31 | | templates: HashMap::new(), [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 27 + impl Default for SimpleTemplateRenderer { [INFO] [stdout] 28 + fn default() -> Self { [INFO] [stdout] 29 + Self::new() [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | / impl Default for NetworkCapability { [INFO] [stdout] 75 | | fn default() -> Self { [INFO] [stdout] 76 | | Self::None [INFO] [stdout] 77 | | } [INFO] [stdout] 78 | | } [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: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 57 + #[derive(Default)] [INFO] [stdout] 58 | pub enum NetworkCapability { [INFO] [stdout] 59 | /// No network access allowed [INFO] [stdout] 60 ~ #[default] [INFO] [stdout] 61 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:99:1 [INFO] [stdout] | [INFO] [stdout] 99 | / impl Default for FilesystemCapability { [INFO] [stdout] 100 | | fn default() -> Self { [INFO] [stdout] 101 | | Self { [INFO] [stdout] 102 | | readable_dirs: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 82 + #[derive(Default)] [INFO] [stdout] 83 | pub struct FilesystemCapability { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `McpServerTemplate` [INFO] [stdout] --> src/templates/mcp_server.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn new() -> Self { [INFO] [stdout] 16 | | Self { [INFO] [stdout] 17 | | template: MCP_SERVER_TEMPLATE.to_string(), [INFO] [stdout] 18 | | } [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 13 + impl Default for McpServerTemplate { [INFO] [stdout] 14 + fn default() -> Self { [INFO] [stdout] 15 + Self::new() [INFO] [stdout] 16 + } [INFO] [stdout] 17 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:127:1 [INFO] [stdout] | [INFO] [stdout] 127 | / impl Default for EnvironmentCapability { [INFO] [stdout] 128 | | fn default() -> Self { [INFO] [stdout] 129 | | Self::None [INFO] [stdout] 130 | | } [INFO] [stdout] 131 | | } [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] 113 + #[derive(Default)] [INFO] [stdout] 114 | pub enum EnvironmentCapability { [INFO] [stdout] 115 | /// No environment variable access [INFO] [stdout] 116 ~ #[default] [INFO] [stdout] 117 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:146:1 [INFO] [stdout] | [INFO] [stdout] 146 | / impl Default for ProcessCapability { [INFO] [stdout] 147 | | fn default() -> Self { [INFO] [stdout] 148 | | Self::None [INFO] [stdout] 149 | | } [INFO] [stdout] 150 | | } [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] 135 + #[derive(Default)] [INFO] [stdout] 136 | pub enum ProcessCapability { [INFO] [stdout] 137 | /// No process creation allowed [INFO] [stdout] 138 ~ #[default] [INFO] [stdout] 139 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | / impl Default for TimeCapability { [INFO] [stdout] 163 | | fn default() -> Self { [INFO] [stdout] 164 | | Self::ReadOnly [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | } [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] 154 + #[derive(Default)] [INFO] [stdout] 155 | pub enum TimeCapability { [INFO] [stdout] 156 | /// Read-only time access [INFO] [stdout] 157 ~ #[default] [INFO] [stdout] 158 ~ ReadOnly, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/security/mod.rs:181:1 [INFO] [stdout] | [INFO] [stdout] 181 | / impl Default for RandomCapability { [INFO] [stdout] 182 | | fn default() -> Self { [INFO] [stdout] 183 | | Self::PseudoOnly [INFO] [stdout] 184 | | } [INFO] [stdout] 185 | | } [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] 170 + #[derive(Default)] [INFO] [stdout] 171 | pub enum RandomCapability { [INFO] [stdout] 172 | /// No random number generation [INFO] [stdout] ... [INFO] [stdout] 175 | /// Pseudo-random number generation only [INFO] [stdout] 176 ~ #[default] [INFO] [stdout] 177 ~ PseudoOnly, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/mod.rs:28:19 [INFO] [stdout] | [INFO] [stdout] 28 | function: Box Result + Send + Sync + 'static>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/mod.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | function: Box Result> + Send + Sync + 'static>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/communication/io.rs:111:26 [INFO] [stdout] | [INFO] [stdout] 111 | .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{:?}", e))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 111 - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{:?}", e))) [INFO] [stdout] 111 + .map_err(|e| io::Error::other(format!("{:?}", e))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/communication/io.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | Err(e) => Err(io::Error::new(io::ErrorKind::Other, format!("{:?}", e))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 152 - Err(e) => Err(io::Error::new(io::ErrorKind::Other, format!("{:?}", e))), [INFO] [stdout] 152 + Err(e) => Err(io::Error::other(format!("{:?}", e))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/rpc.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | host_functions: Mutex Result + 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] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:42:22 [INFO] [stdout] | [INFO] [stdout] 42 | .map_err(|e| Error::Json(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:48:22 [INFO] [stdout] | [INFO] [stdout] 48 | .map_err(|e| Error::Json(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/manifest.rs:127:1 [INFO] [stdout] | [INFO] [stdout] 127 | / impl Default for ManifestFilesystemCapabilities { [INFO] [stdout] 128 | | fn default() -> Self { [INFO] [stdout] 129 | | Self { [INFO] [stdout] 130 | | readable_dirs: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 137 | | } [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 [INFO] [stdout] | [INFO] [stdout] 106 + #[derive(Default)] [INFO] [stdout] 107 | pub struct ManifestFilesystemCapabilities { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/manifest.rs:172:1 [INFO] [stdout] | [INFO] [stdout] 172 | / impl Default for ManifestProcessCapabilities { [INFO] [stdout] 173 | | fn default() -> Self { [INFO] [stdout] 174 | | Self { [INFO] [stdout] 175 | | allow_execution: false, [INFO] [stdout] ... | [INFO] [stdout] 179 | | } [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 [INFO] [stdout] | [INFO] [stdout] 162 + #[derive(Default)] [INFO] [stdout] 163 | pub struct ManifestProcessCapabilities { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:98:63 [INFO] [stdout] | [INFO] [stdout] 98 | params: serde_json::from_str(params_json).map_err(|e| Error::Json(e))?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/communication/rpc.rs:109:50 [INFO] [stdout] | [INFO] [stdout] 109 | serde_json::to_string(&response).map_err(|e| Error::Json(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Error::Json` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SharedMemoryManager` [INFO] [stdout] --> src/communication/memory.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub fn new() -> Self { [INFO] [stdout] 88 | | Self { [INFO] [stdout] 89 | | regions: Mutex::new(HashMap::new()), [INFO] [stdout] 90 | | } [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 85 + impl Default for SharedMemoryManager { [INFO] [stdout] 86 + fn default() -> Self { [INFO] [stdout] 87 + Self::new() [INFO] [stdout] 88 + } [INFO] [stdout] 89 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/communication/memory_channel.rs:256:16 [INFO] [stdout] | [INFO] [stdout] 256 | functions: Mutex Result> + 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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/wrappers/cli_tool.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | let cargo_toml = format!( [INFO] [stdout] | __________________________^ [INFO] [stdout] 48 | | r#"[package] [INFO] [stdout] 49 | | name = "cli-wrapper" [INFO] [stdout] 50 | | version = "0.1.0" [INFO] [stdout] ... | [INFO] [stdout] 61 | | "# [INFO] [stdout] 62 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 47 ~ let cargo_toml = r#"[package] [INFO] [stdout] 48 + name = "cli-wrapper" [INFO] [stdout] 49 + version = "0.1.0" [INFO] [stdout] 50 + edition = "2021" [INFO] [stdout] 51 + [INFO] [stdout] 52 + [dependencies] [INFO] [stdout] 53 + wasm-sandbox = { path = "../.." } [INFO] [stdout] 54 + serde = { version = "1.0", features = ["derive"] } [INFO] [stdout] 55 + serde_json = "1.0" [INFO] [stdout] 56 + tokio = { version = "1.0", features = ["full"] } [INFO] [stdout] 57 + anyhow = "1.0" [INFO] [stdout] 58 + tracing = "0.1" [INFO] [stdout] 59 + tracing-subscriber = "0.3" [INFO] [stdout] 60 ~ "#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/wrappers/cli_tool.rs:72:19 [INFO] [stdout] | [INFO] [stdout] 72 | .args(&["build", "--target", "wasm32-wasi", "--release"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "wasm32-wasi", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/manifest.rs:308:1 [INFO] [stdout] | [INFO] [stdout] 308 | / impl Default for ManifestResourceLimits { [INFO] [stdout] 309 | | fn default() -> Self { [INFO] [stdout] 310 | | Self { [INFO] [stdout] 311 | | memory: ManifestMemoryLimits::default(), [INFO] [stdout] ... | [INFO] [stdout] 316 | | } [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 [INFO] [stdout] | [INFO] [stdout] 294 + #[derive(Default)] [INFO] [stdout] 295 | pub struct ManifestResourceLimits { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/utils/manifest.rs:328:5 [INFO] [stdout] | [INFO] [stdout] 328 | / pub fn from_str(content: &str) -> Result { [INFO] [stdout] 329 | | // Try to parse as TOML first [INFO] [stdout] 330 | | if let Ok(manifest) = toml::from_str::(content) { [INFO] [stdout] 331 | | return Ok(manifest); [INFO] [stdout] ... | [INFO] [stdout] 336 | | .map_err(|e| Error::InvalidConfig(format!("Failed to parse manifest: {}", e))) [INFO] [stdout] 337 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/utils/manifest.rs:432:22 [INFO] [stdout] | [INFO] [stdout] 432 | .map(|s| PathBuf::from(s)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PathBuf::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/utils/manifest.rs:435:22 [INFO] [stdout] | [INFO] [stdout] 435 | .map(|s| PathBuf::from(s)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PathBuf::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/manifest.rs:504:12 [INFO] [stdout] | [INFO] [stdout] 504 | if c.is_digit(10) || c == '.' { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/wrappers/mcp_server.rs:46:26 [INFO] [stdout] | [INFO] [stdout] 46 | let cargo_toml = format!( [INFO] [stdout] | __________________________^ [INFO] [stdout] 47 | | r#"[package] [INFO] [stdout] 48 | | name = "mcp-server-wrapper" [INFO] [stdout] 49 | | version = "0.1.0" [INFO] [stdout] ... | [INFO] [stdout] 65 | | "# [INFO] [stdout] 66 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 46 ~ let cargo_toml = r#"[package] [INFO] [stdout] 47 + name = "mcp-server-wrapper" [INFO] [stdout] 48 + version = "0.1.0" [INFO] [stdout] 49 + edition = "2021" [INFO] [stdout] 50 + [INFO] [stdout] 51 + [dependencies] [INFO] [stdout] 52 + wasm-sandbox = { path = "../.." } [INFO] [stdout] 53 + serde = { version = "1.0", features = ["derive"] } [INFO] [stdout] 54 + serde_json = "1.0" [INFO] [stdout] 55 + tokio = { version = "1.0", features = ["full"] } [INFO] [stdout] 56 + anyhow = "1.0" [INFO] [stdout] 57 + tracing = "0.1" [INFO] [stdout] 58 + tracing-subscriber = "0.3" [INFO] [stdout] 59 + model-context-protocol = "0.1.0" [INFO] [stdout] 60 + axum = "0.6.0" [INFO] [stdout] 61 + tower = "0.4.0" [INFO] [stdout] 62 + tower-http = { version = "0.4.0", features = ["cors"] } [INFO] [stdout] 63 + jsonschema = "0.17.0" [INFO] [stdout] 64 ~ "#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/wrappers/mcp_server.rs:76:19 [INFO] [stdout] | [INFO] [stdout] 76 | .args(&["build", "--target", "wasm32-wasi", "--release"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "wasm32-wasi", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/lib.rs:95:1 [INFO] [stdout] | [INFO] [stdout] 95 | / impl Default for SandboxConfig { [INFO] [stdout] 96 | | fn default() -> Self { [INFO] [stdout] 97 | | Self { [INFO] [stdout] 98 | | runtime: RuntimeConfig::default(), [INFO] [stdout] ... | [INFO] [stdout] 102 | | } [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 [INFO] [stdout] | [INFO] [stdout] 87 + #[derive(Default)] [INFO] [stdout] 88 | pub struct SandboxConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/wrappers/generic.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let cargo_toml = format!( [INFO] [stdout] | __________________________^ [INFO] [stdout] 39 | | r#"[package] [INFO] [stdout] 40 | | name = "generic-wrapper" [INFO] [stdout] 41 | | version = "0.1.0" [INFO] [stdout] ... | [INFO] [stdout] 52 | | "# [INFO] [stdout] 53 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 38 ~ let cargo_toml = r#"[package] [INFO] [stdout] 39 + name = "generic-wrapper" [INFO] [stdout] 40 + version = "0.1.0" [INFO] [stdout] 41 + edition = "2021" [INFO] [stdout] 42 + [INFO] [stdout] 43 + [dependencies] [INFO] [stdout] 44 + wasm-sandbox = { path = "../.." } [INFO] [stdout] 45 + serde = { version = "1.0", features = ["derive"] } [INFO] [stdout] 46 + serde_json = "1.0" [INFO] [stdout] 47 + tokio = { version = "1.0", features = ["full"] } [INFO] [stdout] 48 + anyhow = "1.0" [INFO] [stdout] 49 + tracing = "0.1" [INFO] [stdout] 50 + tracing-subscriber = "0.3" [INFO] [stdout] 51 ~ "#.to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/wrappers/generic.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | .args(&["build", "--target", "wasm32-wasi", "--release"]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["build", "--target", "wasm32-wasi", "--release"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `HttpServerGenerator` [INFO] [stdout] --> src/wrappers/http_server_impl.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / pub fn new() -> Self { [INFO] [stdout] 76 | | Self { [INFO] [stdout] 77 | | config: HttpServerConfig::default(), [INFO] [stdout] 78 | | compiler: CargoCompiler::new(), [INFO] [stdout] 79 | | } [INFO] [stdout] 80 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 73 + impl Default for HttpServerGenerator { [INFO] [stdout] 74 + fn default() -> Self { [INFO] [stdout] 75 + Self::new() [INFO] [stdout] 76 + } [INFO] [stdout] 77 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/runtime/mod.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | async fn call_function_json_async( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 197 ~ fn call_function_json_async( [INFO] [stdout] 198 | &self, [INFO] [stdout] 199 | function_name: &str, [INFO] [stdout] 200 | params_json: &str, [INFO] [stdout] 201 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/runtime/mod.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | async fn call_function_msgpack_async( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 204 ~ fn call_function_msgpack_async( [INFO] [stdout] 205 | &self, [INFO] [stdout] 206 | function_name: &str, [INFO] [stdout] 207 | params_msgpack: &[u8], [INFO] [stdout] 208 ~ ) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/runtime/mod.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 214 | async fn call_function( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 214 ~ fn call_function( [INFO] [stdout] 215 | &self, [INFO] [stdout] 216 | function_name: &str, [INFO] [stdout] 217 | params: &P, [INFO] [stdout] 218 ~ ) -> impl std::future::Future> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `CargoCompiler` [INFO] [stdout] --> src/compiler/mod.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn new() -> Self { [INFO] [stdout] 124 | | Self [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 121 + impl Default for CargoCompiler { [INFO] [stdout] 122 + fn default() -> Self { [INFO] [stdout] 123 + Self::new() [INFO] [stdout] 124 + } [INFO] [stdout] 125 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/compiler/cargo.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / impl Default for EnhancedCargoCompiler { [INFO] [stdout] 29 | | fn default() -> Self { [INFO] [stdout] 30 | | Self { [INFO] [stdout] 31 | | env_vars: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 38 | | } [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 [INFO] [stdout] | [INFO] [stdout] 11 + #[derive(Default)] [INFO] [stdout] 12 | pub struct EnhancedCargoCompiler { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/compiler/cargo.rs:319:22 [INFO] [stdout] | [INFO] [stdout] 319 | let inputs = format!( [INFO] [stdout] | ______________________^ [INFO] [stdout] 320 | | "{}:{}:{}:{}:{}:{}", [INFO] [stdout] 321 | | cargo_toml, [INFO] [stdout] 322 | | cargo_lock, [INFO] [stdout] ... | [INFO] [stdout] 326 | | options.features.join(",") [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/compiler/wasi.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | config_str.push_str("}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `config_str.push('}')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/compiler/wasi.rs:331:13 [INFO] [stdout] | [INFO] [stdout] 331 | if !file_path.extension().map_or(false, |ext| ext == "rs") { [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)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 331 - if !file_path.extension().map_or(false, |ext| ext == "rs") { [INFO] [stdout] 331 + if !file_path.extension().is_some_and(|ext| ext == "rs") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SimpleTemplateRenderer` [INFO] [stdout] --> src/templates/mod.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn new() -> Self { [INFO] [stdout] 30 | | Self { [INFO] [stdout] 31 | | templates: HashMap::new(), [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 27 + impl Default for SimpleTemplateRenderer { [INFO] [stdout] 28 + fn default() -> Self { [INFO] [stdout] 29 + Self::new() [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `McpServerTemplate` [INFO] [stdout] --> src/templates/mcp_server.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn new() -> Self { [INFO] [stdout] 16 | | Self { [INFO] [stdout] 17 | | template: MCP_SERVER_TEMPLATE.to_string(), [INFO] [stdout] 18 | | } [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 13 + impl Default for McpServerTemplate { [INFO] [stdout] 14 + fn default() -> Self { [INFO] [stdout] 15 + Self::new() [INFO] [stdout] 16 + } [INFO] [stdout] 17 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/manifest.rs:127:1 [INFO] [stdout] | [INFO] [stdout] 127 | / impl Default for ManifestFilesystemCapabilities { [INFO] [stdout] 128 | | fn default() -> Self { [INFO] [stdout] 129 | | Self { [INFO] [stdout] 130 | | readable_dirs: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 137 | | } [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 [INFO] [stdout] | [INFO] [stdout] 106 + #[derive(Default)] [INFO] [stdout] 107 | pub struct ManifestFilesystemCapabilities { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/manifest.rs:172:1 [INFO] [stdout] | [INFO] [stdout] 172 | / impl Default for ManifestProcessCapabilities { [INFO] [stdout] 173 | | fn default() -> Self { [INFO] [stdout] 174 | | Self { [INFO] [stdout] 175 | | allow_execution: false, [INFO] [stdout] ... | [INFO] [stdout] 179 | | } [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 [INFO] [stdout] | [INFO] [stdout] 162 + #[derive(Default)] [INFO] [stdout] 163 | pub struct ManifestProcessCapabilities { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/utils/manifest.rs:308:1 [INFO] [stdout] | [INFO] [stdout] 308 | / impl Default for ManifestResourceLimits { [INFO] [stdout] 309 | | fn default() -> Self { [INFO] [stdout] 310 | | Self { [INFO] [stdout] 311 | | memory: ManifestMemoryLimits::default(), [INFO] [stdout] ... | [INFO] [stdout] 316 | | } [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 [INFO] [stdout] | [INFO] [stdout] 294 + #[derive(Default)] [INFO] [stdout] 295 | pub struct ManifestResourceLimits { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/utils/manifest.rs:328:5 [INFO] [stdout] | [INFO] [stdout] 328 | / pub fn from_str(content: &str) -> Result { [INFO] [stdout] 329 | | // Try to parse as TOML first [INFO] [stdout] 330 | | if let Ok(manifest) = toml::from_str::(content) { [INFO] [stdout] 331 | | return Ok(manifest); [INFO] [stdout] ... | [INFO] [stdout] 336 | | .map_err(|e| Error::InvalidConfig(format!("Failed to parse manifest: {}", e))) [INFO] [stdout] 337 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/utils/manifest.rs:432:22 [INFO] [stdout] | [INFO] [stdout] 432 | .map(|s| PathBuf::from(s)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PathBuf::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/utils/manifest.rs:435:22 [INFO] [stdout] | [INFO] [stdout] 435 | .map(|s| PathBuf::from(s)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PathBuf::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/manifest.rs:504:12 [INFO] [stdout] | [INFO] [stdout] 504 | if c.is_digit(10) || c == '.' { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/lib.rs:95:1 [INFO] [stdout] | [INFO] [stdout] 95 | / impl Default for SandboxConfig { [INFO] [stdout] 96 | | fn default() -> Self { [INFO] [stdout] 97 | | Self { [INFO] [stdout] 98 | | runtime: RuntimeConfig::default(), [INFO] [stdout] ... | [INFO] [stdout] 102 | | } [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 [INFO] [stdout] | [INFO] [stdout] 87 + #[derive(Default)] [INFO] [stdout] 88 | pub struct SandboxConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/runtime/mod.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | async fn call_function_json_async( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 197 ~ fn call_function_json_async( [INFO] [stdout] 198 | &self, [INFO] [stdout] 199 | function_name: &str, [INFO] [stdout] 200 | params_json: &str, [INFO] [stdout] 201 ~ ) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/runtime/mod.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | async fn call_function_msgpack_async( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 204 ~ fn call_function_msgpack_async( [INFO] [stdout] 205 | &self, [INFO] [stdout] 206 | function_name: &str, [INFO] [stdout] 207 | params_msgpack: &[u8], [INFO] [stdout] 208 ~ ) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/runtime/mod.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 214 | async fn call_function( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 214 ~ fn call_function( [INFO] [stdout] 215 | &self, [INFO] [stdout] 216 | function_name: &str, [INFO] [stdout] 217 | params: &P, [INFO] [stdout] 218 ~ ) -> impl std::future::Future> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SandboxConfig` [INFO] [stdout] --> examples/http_server.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | WasmSandbox, SandboxConfig, InstanceConfig, [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: `SandboxConfig` [INFO] [stdout] --> examples/cli_wrapper.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | WasmSandbox, SandboxConfig, InstanceConfig, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tests/trait_structure_test.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | assert!(module.id().to_string().len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!module.id().to_string().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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tests/trait_structure_test.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | assert!(exports.len() == 0 || exports.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `exports.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> tests/trait_structure_test.rs:46:35 [INFO] [stdout] | [INFO] [stdout] 46 | assert!(exports.len() == 0 || exports.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!exports.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] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> tests/trait_structure_test.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | assert!(memory_usage == 0 || memory_usage > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `memory_usage >= 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] = note: `#[warn(clippy::double_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 45s [INFO] running `Command { std: "docker" "inspect" "f4fb50581bc7d9d600b922b600d00e2d4d3dec08d7dea48723bf7d10fe325c79", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f4fb50581bc7d9d600b922b600d00e2d4d3dec08d7dea48723bf7d10fe325c79", kill_on_drop: false }` [INFO] [stdout] f4fb50581bc7d9d600b922b600d00e2d4d3dec08d7dea48723bf7d10fe325c79