[INFO] cloning repository https://github.com/peakay/path-finding-experiment [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/peakay/path-finding-experiment" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeakay%2Fpath-finding-experiment", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeakay%2Fpath-finding-experiment'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b9f0a91e17e5d8ae522e7f72630ec9fd28ea8f25 [INFO] linting peakay/path-finding-experiment against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeakay%2Fpath-finding-experiment" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/peakay/path-finding-experiment [INFO] finished tweaking git repo https://github.com/peakay/path-finding-experiment [INFO] tweaked toml for git repo https://github.com/peakay/path-finding-experiment written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/peakay/path-finding-experiment 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/peakay/path-finding-experiment 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] Downloading crates ... [INFO] [stderr] Downloaded emath v0.28.1 [INFO] [stderr] Downloaded webbrowser v1.0.6 [INFO] [stderr] Downloaded ecolor v0.28.1 [INFO] [stderr] Downloaded egui-wgpu v0.28.1 [INFO] [stderr] Downloaded egui-winit v0.28.1 [INFO] [stderr] Downloaded eframe v0.28.1 [INFO] [stderr] Downloaded wgpu-types v0.20.0 [INFO] [stderr] Downloaded egui_glow v0.28.1 [INFO] [stderr] Downloaded wgpu v0.20.1 [INFO] [stderr] Downloaded wgpu-core v0.21.1 [INFO] [stderr] Downloaded wgpu-hal v0.21.1 [INFO] [stderr] Downloaded egui v0.28.1 [INFO] [stderr] Downloaded naga v0.20.0 [INFO] [stderr] Downloaded epaint v0.28.1 [INFO] [stderr] Downloaded metal v0.28.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 9a987495a11a8ab7ac19bdfba6a9364a01e8cbe347380b9481fb15656acb5167 [INFO] running `Command { std: "docker" "start" "-a" "9a987495a11a8ab7ac19bdfba6a9364a01e8cbe347380b9481fb15656acb5167", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9a987495a11a8ab7ac19bdfba6a9364a01e8cbe347380b9481fb15656acb5167", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a987495a11a8ab7ac19bdfba6a9364a01e8cbe347380b9481fb15656acb5167", kill_on_drop: false }` [INFO] [stdout] 9a987495a11a8ab7ac19bdfba6a9364a01e8cbe347380b9481fb15656acb5167 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 0564f01afae6963e1023a3d23c52aa7231fb1a27a69851e06812be40a385f192 [INFO] running `Command { std: "docker" "start" "-a" "0564f01afae6963e1023a3d23c52aa7231fb1a27a69851e06812be40a385f192", kill_on_drop: false }` [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling wayland-sys v0.31.7 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling wayland-backend v0.3.11 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking rustix v1.1.2 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.104 [INFO] [stderr] Checking futures-lite v1.13.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking io-lifetimes v1.0.11 [INFO] [stderr] Compiling async-fs v1.6.0 [INFO] [stderr] Checking rustix v0.37.28 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking polling v2.8.0 [INFO] [stderr] Checking memoffset v0.7.1 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking async-executor v1.13.3 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling openssl-sys v0.9.110 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking async-broadcast v0.5.1 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking xdg-home v1.3.0 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling smithay-client-toolkit v0.18.1 [INFO] [stderr] Compiling bumpalo v3.19.0 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking socket2 v0.6.1 [INFO] [stderr] Checking mio v1.1.0 [INFO] [stderr] Checking accesskit v0.12.3 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling wasm-bindgen v0.2.104 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling winit v0.29.15 [INFO] [stderr] Checking raw-window-handle v0.5.2 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling openssl v0.10.74 [INFO] [stderr] Checking tokio v1.48.0 [INFO] [stderr] Compiling glutin_egl_sys v0.6.0 [INFO] [stderr] Compiling glutin_glx_sys v0.5.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking hashbrown v0.16.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking accesskit_consumer v0.16.1 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling glutin v0.31.3 [INFO] [stderr] Checking async-once-cell v0.5.4 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking flate2 v1.1.4 [INFO] [stderr] Checking pxfm v0.1.25 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking async-io v1.13.0 [INFO] [stderr] Compiling glutin-winit v0.4.2 [INFO] [stderr] Checking memoffset v0.9.1 [INFO] [stderr] Checking web-time v0.2.4 [INFO] [stderr] Checking glow v0.13.1 [INFO] [stderr] Checking rustls-pemfile v1.0.4 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Checking moxcms v0.7.7 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Compiling zvariant_utils v1.0.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.104 [INFO] [stderr] Checking tokio-util v0.7.16 [INFO] [stderr] Checking wayland-client v0.31.11 [INFO] [stderr] Compiling zvariant_derive v3.15.2 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling zbus_macros v3.15.2 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.104 [INFO] [stderr] Checking wayland-protocols v0.31.2 [INFO] [stderr] Checking wayland-cursor v0.31.11 [INFO] [stderr] Checking wayland-protocols v0.32.9 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking emath v0.28.1 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Compiling pk-chat-agent v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> build.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / for entry in entries { [INFO] [stdout] 17 | | if let Ok(entry) = entry { [INFO] [stdout] 18 | | let path = entry.path(); [INFO] [stdout] 19 | | if let Some(extension) = path.extension() { [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> build.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | / if let Ok(entry) = entry { [INFO] [stdout] 18 | | let path = entry.path(); [INFO] [stdout] 19 | | if let Some(extension) = path.extension() { [INFO] [stdout] 20 | | if extension == "json" { [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 16 ~ for entry in entries.flatten() { [INFO] [stdout] 17 + let path = entry.path(); [INFO] [stdout] 18 + if let Some(extension) = path.extension() { [INFO] [stdout] 19 + if extension == "json" { [INFO] [stdout] 20 + if let Some(filename) = path.file_stem() { [INFO] [stdout] 21 + if let Some(filename_str) = filename.to_str() { [INFO] [stdout] 22 + // Read the JSON file to extract metadata [INFO] [stdout] 23 + if let Ok(content) = fs::read_to_string(&path) { [INFO] [stdout] 24 + if let Ok(metadata) = extract_map_metadata(&content) { [INFO] [stdout] 25 + map_entries.push((filename_str.to_string(), metadata)); [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] 28 + } [INFO] [stdout] 29 + } [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] 32 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> build.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | / if let Some(extension) = path.extension() { [INFO] [stdout] 20 | | if extension == "json" { [INFO] [stdout] 21 | | if let Some(filename) = path.file_stem() { [INFO] [stdout] 22 | | if let Some(filename_str) = filename.to_str() { [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 19 ~ if let Some(extension) = path.extension() [INFO] [stdout] 20 ~ && extension == "json" { [INFO] [stdout] 21 | if let Some(filename) = path.file_stem() { [INFO] [stdout] ... [INFO] [stdout] 30 | } [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> build.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | / if extension == "json" { [INFO] [stdout] 21 | | if let Some(filename) = path.file_stem() { [INFO] [stdout] 22 | | if let Some(filename_str) = filename.to_str() { [INFO] [stdout] ... | [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ if extension == "json" [INFO] [stdout] 21 ~ && let Some(filename) = path.file_stem() { [INFO] [stdout] 22 | if let Some(filename_str) = filename.to_str() { [INFO] [stdout] ... [INFO] [stdout] 29 | } [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> build.rs:21:25 [INFO] [stdout] | [INFO] [stdout] 21 | / if let Some(filename) = path.file_stem() { [INFO] [stdout] 22 | | if let Some(filename_str) = filename.to_str() { [INFO] [stdout] 23 | | // Read the JSON file to extract metadata [INFO] [stdout] 24 | | if let Ok(content) = fs::read_to_string(&path) { [INFO] [stdout] ... | [INFO] [stdout] 30 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 21 ~ if let Some(filename) = path.file_stem() [INFO] [stdout] 22 ~ && let Some(filename_str) = filename.to_str() { [INFO] [stdout] 23 | // Read the JSON file to extract metadata [INFO] [stdout] ... [INFO] [stdout] 28 | } [INFO] [stdout] 29 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> build.rs:24:33 [INFO] [stdout] | [INFO] [stdout] 24 | / ... if let Ok(content) = fs::read_to_string(&path) { [INFO] [stdout] 25 | | ... if let Ok(metadata) = extract_map_metadata(&content) { [INFO] [stdout] 26 | | ... map_entries.push((filename_str.to_string(), metadata)); [INFO] [stdout] 27 | | ... } [INFO] [stdout] 28 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 24 ~ if let Ok(content) = fs::read_to_string(&path) [INFO] [stdout] 25 ~ && let Ok(metadata) = extract_map_metadata(&content) { [INFO] [stdout] 26 | map_entries.push((filename_str.to_string(), metadata)); [INFO] [stdout] 27 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking zerovec v0.11.4 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking ecolor v0.28.1 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking image v0.25.8 [INFO] [stderr] Checking calloop v0.12.4 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking epaint v0.28.1 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.104 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.3 [INFO] [stderr] Checking calloop-wayland-source v0.2.0 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking egui v0.28.1 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking h2 v0.3.27 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking enumflags2 v0.7.12 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking zvariant v3.15.2 [INFO] [stderr] Checking js-sys v0.3.81 [INFO] [stderr] Checking console_error_panic_hook v0.1.7 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking zbus_names v2.6.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking zbus v3.15.2 [INFO] [stderr] Checking wayland-protocols-wlr v0.2.0 [INFO] [stderr] Checking wayland-protocols-plasma v0.2.0 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.9 [INFO] [stderr] Checking webbrowser v1.0.6 [INFO] [stderr] Checking egui_glow v0.28.1 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking wasm-bindgen-futures v0.4.54 [INFO] [stderr] Checking web-sys v0.3.81 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking sctk-adwaita v0.8.3 [INFO] [stderr] Checking smithay-clipboard v0.7.2 [INFO] [stderr] Checking atspi-common v0.3.0 [INFO] [stderr] Checking atspi-proxies v0.3.0 [INFO] [stderr] Checking atspi-connection v0.3.0 [INFO] [stderr] Checking atspi v0.19.0 [INFO] [stderr] Checking accesskit_unix v0.6.2 [INFO] [stderr] Checking accesskit_winit v0.16.1 [INFO] [stderr] Checking egui-winit v0.28.1 [INFO] [stderr] Checking eframe v0.28.1 [INFO] [stdout] warning: unused variable: `map` [INFO] [stdout] --> src/editor/editor_input.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | map: &mut GridMap, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_map` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `map` [INFO] [stdout] --> src/editor/editor_input.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | map: &mut GridMap, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_map` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogEntry` is never used [INFO] [stdout] --> src/agent.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum LogEntry { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Direction` is never used [INFO] [stdout] --> src/agent.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum Direction { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_str`, `as_str`, and `apply` are never used [INFO] [stdout] --> src/agent.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl Direction { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 50 | /// Parse direction from string [INFO] [stdout] 51 | pub fn from_str(s: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn as_str(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn apply(&self, x: i32, y: i32, map_width: i32, map_height: i32) -> (i32, i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MovementStatus` is never used [INFO] [stdout] --> src/agent.rs:84:10 [INFO] [stdout] | [INFO] [stdout] 84 | pub enum MovementStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Agent` is never constructed [INFO] [stdout] --> src/agent.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct Agent { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/agent.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 124 | impl Agent { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 125 | pub fn new(id: u32, name: impl Into, x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn pos(&self) -> (usize, usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn set_pos(&mut self, x: usize, y: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn get_logs(&self) -> &[LogEntry] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn log(&mut self, entry: LogEntry) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn log_info(&mut self, message: impl Into) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn get_chat_history(&self) -> &[Message] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn clear_chat_history(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn add_assistant_tool_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn add_tool_result(&mut self, tool_call_id: String, tool_name: String, result: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn generate_system_prompt(&self, map: &GridMap) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | fn map_state_json(&self, map: &GridMap) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | fn map_state_json_with_params(&self, map: &GridMap, area: Option<(usize, usize)>, visibility: Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | fn register_default_tools(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | pub fn register_tool(&mut self, tool: Tool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 522 | pub fn get_tools(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 531 | pub fn get_all_tools(&self) -> &[Tool] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 536 | pub fn enable_tool(&mut self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 546 | pub fn disable_tool(&mut self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 551 | pub fn is_tool_enabled(&self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | pub fn get_enabled_tools(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 561 | pub fn execute_instruction( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 712 | pub fn handle_tool_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 798 | pub fn execute_move_step( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 858 | fn handle_get_position_tool(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 867 | fn handle_get_available_directions_tool(&self, map: &GridMap) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 907 | fn handle_get_bearings_tool(&mut self, args: Value, map: &GridMap) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 997 | fn handle_move_agent_tool(&mut self, args: Value, _map: &GridMap) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1046 | pub fn take_pending_moves(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1055 | pub fn is_moving(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1060 | pub fn max_history_messages(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1065 | pub fn set_max_history_messages(&mut self, max: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1070 | pub fn get_movement_history(&self) -> &[(usize, usize)] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1075 | pub fn clear_movement_history(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1082 | pub fn has_visited(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1087 | pub fn generate_navigation_hint(&self, map: &GridMap, had_errors: bool) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1151 | pub fn process_movement_step(&mut self, map: &mut GridMap) -> MovementStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnimationController` is never constructed [INFO] [stdout] --> src/animation.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct AnimationController { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update`, `get_thinking_text`, and `get_processing_text` are never used [INFO] [stdout] --> src/animation.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl AnimationController { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 10 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn update(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn get_thinking_text(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_processing_text(&self, event_count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TICK_RATE` is never used [INFO] [stdout] --> src/app.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const TICK_RATE: Duration = Duration::from_millis(500); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyApp` is never constructed [INFO] [stdout] --> src/app.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct MyApp { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `load_api_key_from_storage`, `save_api_key_to_storage`, `new`, `process_tick`, and `process_ticks` are never used [INFO] [stdout] --> src/app.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl MyApp { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 66 | /// Load OpenRouter API key from localStorage [INFO] [stdout] 67 | fn load_api_key_from_storage() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn save_api_key_to_storage(api_key: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn new(cc: &eframe::CreationContext<'_>, openrouter_api_key: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | fn process_tick(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn process_ticks(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `draw_agent_panel`, `draw_agent_controls`, `draw_tool_toggles`, `draw_tile_info`, `draw_activity_log`, and `draw_grid_panel` are never used [INFO] [stdout] --> src/app.rs:346:8 [INFO] [stdout] | [INFO] [stdout] 345 | impl MyApp { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 346 | fn draw_agent_panel(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | fn draw_agent_controls(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 496 | fn draw_tool_toggles(&mut self, ui: &mut egui::Ui, is_processing: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 535 | fn draw_tile_info(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | fn draw_activity_log(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 543 | fn draw_grid_panel(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BoardInput` is never constructed [INFO] [stdout] --> src/board/board_input.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct BoardInput; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `handle_input` is never used [INFO] [stdout] --> src/board/board_input.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl BoardInput { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 12 | /// Handle board input - dispatches to edit or play mode handlers [INFO] [stdout] 13 | pub fn handle_input( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BoardRenderer` is never constructed [INFO] [stdout] --> src/board/board_renderer.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct BoardRenderer; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `render` and `screen_to_grid` are never used [INFO] [stdout] --> src/board/board_renderer.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl BoardRenderer { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 11 | /// Render the game board with tiles, grid, agent, and trail [INFO] [stdout] 12 | pub fn render( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn screen_to_grid( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorInput` is never constructed [INFO] [stdout] --> src/editor/editor_input.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct EditorInput; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `handle_edit_input` and `handle_play_input` are never used [INFO] [stdout] --> src/editor/editor_input.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl EditorInput { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 9 | /// Handle board input during edit mode [INFO] [stdout] 10 | pub fn handle_edit_input( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn handle_play_input( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MapJson` is never constructed [INFO] [stdout] --> src/editor/editor_operations.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct MapJson { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorOperations` is never constructed [INFO] [stdout] --> src/editor/editor_operations.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct EditorOperations; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `resize_map`, `fill_all`, `copy_map_to_clipboard`, and `copy_to_clipboard` are never used [INFO] [stdout] --> src/editor/editor_operations.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl EditorOperations { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn resize_map( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn fill_all(map: &mut GridMap, tile: TileKind) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn copy_map_to_clipboard(map: &GridMap, editor_state: &EditorState, agent: &mut Agent) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | fn copy_to_clipboard(text: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorState` is never constructed [INFO] [stdout] --> src/editor/editor_state.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct EditorState { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/editor/editor_state.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl EditorState { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 28 | pub fn new(initial_map_width: usize, initial_map_height: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn toggle_edit_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn set_selected_tile(&mut self, tile: TileKind) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn toggle_placing_agent(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn exit_placement_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn set_target_dimensions(&mut self, width: usize, height: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn initialize_from_map(&mut self, map: &crate::map::GridMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorUI` is never constructed [INFO] [stdout] --> src/editor/editor_ui.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct EditorUI; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `draw_edit_controls` and `draw_edit_mode_toggle` are never used [INFO] [stdout] --> src/editor/editor_ui.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl EditorUI { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn draw_edit_controls( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn draw_edit_mode_toggle(ui: &mut egui::Ui, editor_state: &mut EditorState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EventId` is never constructed [INFO] [stdout] --> src/events.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct EventId(u64); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `EVENT_COUNTER` is never used [INFO] [stdout] --> src/events.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | static EVENT_COUNTER: Mutex = Mutex::new(0); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/events.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl EventId { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EventStatus` is never used [INFO] [stdout] --> src/events.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum EventStatus { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Event` is never used [INFO] [stdout] --> src/events.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum Event { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScheduledEvent` is never constructed [INFO] [stdout] --> src/events.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct ScheduledEvent { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `immediate`, and `is_ready` are never used [INFO] [stdout] --> src/events.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl ScheduledEvent { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 54 | pub fn new(event: Event, delay: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn immediate(event: Event) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn is_ready(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EventQueue` is never constructed [INFO] [stdout] --> src/events.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct EventQueue { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/events.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 79 | impl EventQueue { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 80 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn submit(&self, event: Event, delay: Duration) -> EventId { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn submit_immediate(&self, event: Event) -> EventId { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn submit_sequence(&self, events: Vec, delay_between: Duration) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn cancel_events(&self, event_ids: &[EventId]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn cancel_agent_events(&self, agent_id: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn pop_ready(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn complete(&self, id: EventId, result: Result<(), String>) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn is_completed(&self, id: EventId) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn pending_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PendingToolExecution` is never constructed [INFO] [stdout] --> src/events.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct PendingToolExecution { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_complete`, and `get_event_results` are never used [INFO] [stdout] --> src/events.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl PendingToolExecution { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 207 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn is_complete(&self, event_queue: &EventQueue) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn get_event_results(&self, event_queue: &EventQueue) -> Vec<(EventId, Result<(), String>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TileKind` is never used [INFO] [stdout] --> src/map.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TileKind { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MapMetadata` is never constructed [INFO] [stdout] --> src/map.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct MapMetadata { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GridMap` is never constructed [INFO] [stdout] --> src/map.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct GridMap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/map.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl GridMap { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 59 | pub fn new(width: usize, height: usize, fill: TileKind) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn width(&self) -> usize { self.width } [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn height(&self) -> usize { self.height } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn in_bounds(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get(&self, x: usize, y: usize) -> Option<&TileKind> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set(&mut self, x: usize, y: usize, kind: TileKind) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn clear(&mut self, kind: TileKind) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn fill_rect(&mut self, x: usize, y: usize, w: usize, h: usize, kind: TileKind) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn is_traversable(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn tiles(&self) -> &Vec> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_traversable`, `is_blocking`, and `name` are never used [INFO] [stdout] --> src/map.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 123 | impl TileKind { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 124 | /// Returns true if this tile can be walked on by agents [INFO] [stdout] 125 | pub fn is_traversable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn is_blocking(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn name(&self) -> &'static str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MapType` is never used [INFO] [stdout] --> /opt/rustwide/target/debug/build/pk-chat-agent-5a698171e3702986/out/map_registry.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapType { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `all`, `name`, `description`, and `create_map` are never used [INFO] [stdout] --> /opt/rustwide/target/debug/build/pk-chat-agent-5a698171e3702986/out/map_registry.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl MapType { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 13 | pub fn all() -> Vec { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn name(&self) -> &'static str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn description(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn create_map(&self, _width: usize, _height: usize) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolCall` is never constructed [INFO] [stdout] --> src/openrouter.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct ToolCall { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolCallFunction` is never constructed [INFO] [stdout] --> src/openrouter.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct ToolCallFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Message` is never constructed [INFO] [stdout] --> src/openrouter.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Message { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tool` is never constructed [INFO] [stdout] --> src/openrouter.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct Tool { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Function` is never constructed [INFO] [stdout] --> src/openrouter.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct Function { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OpenRouterEvent` is never used [INFO] [stdout] --> src/openrouter.rs:51:10 [INFO] [stdout] | [INFO] [stdout] 51 | pub enum OpenRouterEvent { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_router_event_stream` is never used [INFO] [stdout] --> src/openrouter.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn open_router_event_stream( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_tree_sprite` is never used [INFO] [stdout] --> src/rendering/sprites.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn generate_tree_sprite(size: usize) -> egui::ColorImage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blit_disc` is never used [INFO] [stdout] --> src/rendering/sprites.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn blit_disc(img: &mut egui::ColorImage, cx: f32, cy: f32, r: f32, col: egui::Color32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_tree_sprite` is never used [INFO] [stdout] --> src/rendering/sprites.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn draw_tree_sprite(painter: &Painter, rect: Rect, tex: &egui::TextureHandle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_grass_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn draw_grass_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_water_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn draw_water_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_sand_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn draw_sand_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_wall_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn draw_wall_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_log_entry` is never used [INFO] [stdout] --> src/rendering/ui.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn draw_log_entry(ui: &mut egui::Ui, entry: &LogEntry) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolExecutionManager` is never constructed [INFO] [stdout] --> src/tool_execution/tool_execution_manager.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ToolExecutionManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tool_execution/tool_execution_manager.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ToolExecutionManager { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 21 | pub fn new(tick_rate: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn get_tool_callbacks(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn process_tool_callbacks( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn process_pending_executions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn has_pending_executions(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn pending_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn clear_callbacks(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AgentPanel` is never constructed [INFO] [stdout] --> src/ui/agent_panel.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct AgentPanel; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `draw_activity_log`, `is_processing`, `draw_processing_status`, and `draw_thinking_status` are never used [INFO] [stdout] --> src/ui/agent_panel.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl AgentPanel { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] 12 | /// Draw the activity log [INFO] [stdout] 13 | pub fn draw_activity_log(ui: &mut egui::Ui, agent: &Agent) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn is_processing( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn draw_processing_status( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn draw_thinking_status(ui: &mut egui::Ui, animation_controller: &AnimationController) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TileInfoPanel` is never constructed [INFO] [stdout] --> src/ui/tile_info_panel.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TileInfoPanel; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `draw` is never used [INFO] [stdout] --> src/ui/tile_info_panel.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TileInfoPanel { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 9 | pub fn draw( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogEntry` is never used [INFO] [stdout] --> src/agent.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum LogEntry { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Direction` is never used [INFO] [stdout] --> src/agent.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum Direction { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_str`, `as_str`, and `apply` are never used [INFO] [stdout] --> src/agent.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl Direction { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 50 | /// Parse direction from string [INFO] [stdout] 51 | pub fn from_str(s: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn as_str(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn apply(&self, x: i32, y: i32, map_width: i32, map_height: i32) -> (i32, i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MovementStatus` is never used [INFO] [stdout] --> src/agent.rs:84:10 [INFO] [stdout] | [INFO] [stdout] 84 | pub enum MovementStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Agent` is never constructed [INFO] [stdout] --> src/agent.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct Agent { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/agent.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 124 | impl Agent { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 125 | pub fn new(id: u32, name: impl Into, x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn pos(&self) -> (usize, usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn set_pos(&mut self, x: usize, y: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn get_logs(&self) -> &[LogEntry] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn log(&mut self, entry: LogEntry) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn log_info(&mut self, message: impl Into) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn get_chat_history(&self) -> &[Message] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn clear_chat_history(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn add_assistant_tool_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn add_tool_result(&mut self, tool_call_id: String, tool_name: String, result: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn generate_system_prompt(&self, map: &GridMap) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | fn map_state_json(&self, map: &GridMap) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | fn map_state_json_with_params(&self, map: &GridMap, area: Option<(usize, usize)>, visibility: Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | fn register_default_tools(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | pub fn register_tool(&mut self, tool: Tool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 522 | pub fn get_tools(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 531 | pub fn get_all_tools(&self) -> &[Tool] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 536 | pub fn enable_tool(&mut self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 546 | pub fn disable_tool(&mut self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 551 | pub fn is_tool_enabled(&self, name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | pub fn get_enabled_tools(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 561 | pub fn execute_instruction( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 712 | pub fn handle_tool_call( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 798 | pub fn execute_move_step( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 858 | fn handle_get_position_tool(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 867 | fn handle_get_available_directions_tool(&self, map: &GridMap) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 907 | fn handle_get_bearings_tool(&mut self, args: Value, map: &GridMap) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 997 | fn handle_move_agent_tool(&mut self, args: Value, _map: &GridMap) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1046 | pub fn take_pending_moves(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1055 | pub fn is_moving(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1060 | pub fn max_history_messages(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1065 | pub fn set_max_history_messages(&mut self, max: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1070 | pub fn get_movement_history(&self) -> &[(usize, usize)] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1075 | pub fn clear_movement_history(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1082 | pub fn has_visited(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1087 | pub fn generate_navigation_hint(&self, map: &GridMap, had_errors: bool) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1151 | pub fn process_movement_step(&mut self, map: &mut GridMap) -> MovementStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnimationController` is never constructed [INFO] [stdout] --> src/animation.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct AnimationController { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update`, `get_thinking_text`, and `get_processing_text` are never used [INFO] [stdout] --> src/animation.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl AnimationController { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 10 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn update(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn get_thinking_text(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_processing_text(&self, event_count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TICK_RATE` is never used [INFO] [stdout] --> src/app.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const TICK_RATE: Duration = Duration::from_millis(500); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyApp` is never constructed [INFO] [stdout] --> src/app.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct MyApp { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `load_api_key_from_storage`, `save_api_key_to_storage`, `new`, `process_tick`, and `process_ticks` are never used [INFO] [stdout] --> src/app.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl MyApp { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 66 | /// Load OpenRouter API key from localStorage [INFO] [stdout] 67 | fn load_api_key_from_storage() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn save_api_key_to_storage(api_key: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn new(cc: &eframe::CreationContext<'_>, openrouter_api_key: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | fn process_tick(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn process_ticks(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `draw_agent_panel`, `draw_agent_controls`, `draw_tool_toggles`, `draw_tile_info`, `draw_activity_log`, and `draw_grid_panel` are never used [INFO] [stdout] --> src/app.rs:346:8 [INFO] [stdout] | [INFO] [stdout] 345 | impl MyApp { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 346 | fn draw_agent_panel(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | fn draw_agent_controls(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 496 | fn draw_tool_toggles(&mut self, ui: &mut egui::Ui, is_processing: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 535 | fn draw_tile_info(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | fn draw_activity_log(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 543 | fn draw_grid_panel(&mut self, ui: &mut egui::Ui) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BoardInput` is never constructed [INFO] [stdout] --> src/board/board_input.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct BoardInput; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `handle_input` is never used [INFO] [stdout] --> src/board/board_input.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl BoardInput { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 12 | /// Handle board input - dispatches to edit or play mode handlers [INFO] [stdout] 13 | pub fn handle_input( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BoardRenderer` is never constructed [INFO] [stdout] --> src/board/board_renderer.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct BoardRenderer; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `render` and `screen_to_grid` are never used [INFO] [stdout] --> src/board/board_renderer.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl BoardRenderer { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 11 | /// Render the game board with tiles, grid, agent, and trail [INFO] [stdout] 12 | pub fn render( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn screen_to_grid( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorInput` is never constructed [INFO] [stdout] --> src/editor/editor_input.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct EditorInput; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `handle_edit_input` and `handle_play_input` are never used [INFO] [stdout] --> src/editor/editor_input.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl EditorInput { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 9 | /// Handle board input during edit mode [INFO] [stdout] 10 | pub fn handle_edit_input( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn handle_play_input( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MapJson` is never constructed [INFO] [stdout] --> src/editor/editor_operations.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct MapJson { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorOperations` is never constructed [INFO] [stdout] --> src/editor/editor_operations.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct EditorOperations; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `resize_map`, `fill_all`, `copy_map_to_clipboard`, and `copy_to_clipboard` are never used [INFO] [stdout] --> src/editor/editor_operations.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl EditorOperations { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn resize_map( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn fill_all(map: &mut GridMap, tile: TileKind) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn copy_map_to_clipboard(map: &GridMap, editor_state: &EditorState, agent: &mut Agent) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | fn copy_to_clipboard(text: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorState` is never constructed [INFO] [stdout] --> src/editor/editor_state.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct EditorState { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/editor/editor_state.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl EditorState { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 28 | pub fn new(initial_map_width: usize, initial_map_height: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn toggle_edit_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn set_selected_tile(&mut self, tile: TileKind) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn toggle_placing_agent(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn exit_placement_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn set_target_dimensions(&mut self, width: usize, height: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn initialize_from_map(&mut self, map: &crate::map::GridMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EditorUI` is never constructed [INFO] [stdout] --> src/editor/editor_ui.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct EditorUI; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `draw_edit_controls` and `draw_edit_mode_toggle` are never used [INFO] [stdout] --> src/editor/editor_ui.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl EditorUI { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn draw_edit_controls( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn draw_edit_mode_toggle(ui: &mut egui::Ui, editor_state: &mut EditorState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EventId` is never constructed [INFO] [stdout] --> src/events.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct EventId(u64); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `EVENT_COUNTER` is never used [INFO] [stdout] --> src/events.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | static EVENT_COUNTER: Mutex = Mutex::new(0); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/events.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl EventId { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EventStatus` is never used [INFO] [stdout] --> src/events.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum EventStatus { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Event` is never used [INFO] [stdout] --> src/events.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum Event { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScheduledEvent` is never constructed [INFO] [stdout] --> src/events.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct ScheduledEvent { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `immediate`, and `is_ready` are never used [INFO] [stdout] --> src/events.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl ScheduledEvent { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 54 | pub fn new(event: Event, delay: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn immediate(event: Event) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn is_ready(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EventQueue` is never constructed [INFO] [stdout] --> src/events.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct EventQueue { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/events.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 79 | impl EventQueue { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 80 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn submit(&self, event: Event, delay: Duration) -> EventId { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn submit_immediate(&self, event: Event) -> EventId { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn submit_sequence(&self, events: Vec, delay_between: Duration) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn cancel_events(&self, event_ids: &[EventId]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn cancel_agent_events(&self, agent_id: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn pop_ready(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn complete(&self, id: EventId, result: Result<(), String>) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn is_completed(&self, id: EventId) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn pending_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PendingToolExecution` is never constructed [INFO] [stdout] --> src/events.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct PendingToolExecution { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_complete`, and `get_event_results` are never used [INFO] [stdout] --> src/events.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl PendingToolExecution { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 207 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn is_complete(&self, event_queue: &EventQueue) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn get_event_results(&self, event_queue: &EventQueue) -> Vec<(EventId, Result<(), String>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TileKind` is never used [INFO] [stdout] --> src/map.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TileKind { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MapMetadata` is never constructed [INFO] [stdout] --> src/map.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct MapMetadata { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GridMap` is never constructed [INFO] [stdout] --> src/map.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct GridMap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/map.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl GridMap { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 59 | pub fn new(width: usize, height: usize, fill: TileKind) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn width(&self) -> usize { self.width } [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn height(&self) -> usize { self.height } [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn in_bounds(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get(&self, x: usize, y: usize) -> Option<&TileKind> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set(&mut self, x: usize, y: usize, kind: TileKind) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn clear(&mut self, kind: TileKind) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn fill_rect(&mut self, x: usize, y: usize, w: usize, h: usize, kind: TileKind) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn is_traversable(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn tiles(&self) -> &Vec> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_traversable`, `is_blocking`, and `name` are never used [INFO] [stdout] --> src/map.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 123 | impl TileKind { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 124 | /// Returns true if this tile can be walked on by agents [INFO] [stdout] 125 | pub fn is_traversable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn is_blocking(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn name(&self) -> &'static str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MapType` is never used [INFO] [stdout] --> /opt/rustwide/target/debug/build/pk-chat-agent-5a698171e3702986/out/map_registry.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapType { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `all`, `name`, `description`, and `create_map` are never used [INFO] [stdout] --> /opt/rustwide/target/debug/build/pk-chat-agent-5a698171e3702986/out/map_registry.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl MapType { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 13 | pub fn all() -> Vec { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn name(&self) -> &'static str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn description(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn create_map(&self, _width: usize, _height: usize) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolCall` is never constructed [INFO] [stdout] --> src/openrouter.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct ToolCall { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolCallFunction` is never constructed [INFO] [stdout] --> src/openrouter.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct ToolCallFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Message` is never constructed [INFO] [stdout] --> src/openrouter.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Message { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tool` is never constructed [INFO] [stdout] --> src/openrouter.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct Tool { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Function` is never constructed [INFO] [stdout] --> src/openrouter.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct Function { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OpenRouterEvent` is never used [INFO] [stdout] --> src/openrouter.rs:51:10 [INFO] [stdout] | [INFO] [stdout] 51 | pub enum OpenRouterEvent { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_router_event_stream` is never used [INFO] [stdout] --> src/openrouter.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn open_router_event_stream( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_tree_sprite` is never used [INFO] [stdout] --> src/rendering/sprites.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn generate_tree_sprite(size: usize) -> egui::ColorImage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blit_disc` is never used [INFO] [stdout] --> src/rendering/sprites.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn blit_disc(img: &mut egui::ColorImage, cx: f32, cy: f32, r: f32, col: egui::Color32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_tree_sprite` is never used [INFO] [stdout] --> src/rendering/sprites.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn draw_tree_sprite(painter: &Painter, rect: Rect, tex: &egui::TextureHandle) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_grass_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn draw_grass_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_water_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn draw_water_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_sand_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn draw_sand_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_wall_tile` is never used [INFO] [stdout] --> src/rendering/tiles.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn draw_wall_tile(painter: &Painter, rect: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_log_entry` is never used [INFO] [stdout] --> src/rendering/ui.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn draw_log_entry(ui: &mut egui::Ui, entry: &LogEntry) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ToolExecutionManager` is never constructed [INFO] [stdout] --> src/tool_execution/tool_execution_manager.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ToolExecutionManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tool_execution/tool_execution_manager.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ToolExecutionManager { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 21 | pub fn new(tick_rate: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn get_tool_callbacks(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn process_tool_callbacks( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn process_pending_executions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn has_pending_executions(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn pending_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn clear_callbacks(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AgentPanel` is never constructed [INFO] [stdout] --> src/ui/agent_panel.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct AgentPanel; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `draw_activity_log`, `is_processing`, `draw_processing_status`, and `draw_thinking_status` are never used [INFO] [stdout] --> src/ui/agent_panel.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl AgentPanel { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] 12 | /// Draw the activity log [INFO] [stdout] 13 | pub fn draw_activity_log(ui: &mut egui::Ui, agent: &Agent) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn is_processing( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn draw_processing_status( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn draw_thinking_status(ui: &mut egui::Ui, animation_controller: &AnimationController) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TileInfoPanel` is never constructed [INFO] [stdout] --> src/ui/tile_info_panel.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TileInfoPanel; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `draw` is never used [INFO] [stdout] --> src/ui/tile_info_panel.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TileInfoPanel { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 9 | pub fn draw( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/agent.rs:561:5 [INFO] [stdout] | [INFO] [stdout] 561 | / pub fn execute_instruction( [INFO] [stdout] 562 | | &mut self, [INFO] [stdout] 563 | | instruction: String, [INFO] [stdout] 564 | | api_key: String, [INFO] [stdout] ... | [INFO] [stdout] 569 | | llm_status_callback: Arc>, [INFO] [stdout] 570 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/agent.rs:657:13 [INFO] [stdout] | [INFO] [stdout] 657 | / if !content_buf.is_empty() { [INFO] [stdout] 658 | | if let Ok(mut g) = log_callback.lock() { [INFO] [stdout] 659 | | g.push((agent_id, LogEntry::AgentThinking(content_buf))); [INFO] [stdout] 660 | | } [INFO] [stdout] 661 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 657 ~ if !content_buf.is_empty() [INFO] [stdout] 658 ~ && let Ok(mut g) = log_callback.lock() { [INFO] [stdout] 659 | g.push((agent_id, LogEntry::AgentThinking(content_buf))); [INFO] [stdout] 660 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/agent.rs:561:5 [INFO] [stdout] | [INFO] [stdout] 561 | / pub fn execute_instruction( [INFO] [stdout] 562 | | &mut self, [INFO] [stdout] 563 | | instruction: String, [INFO] [stdout] 564 | | api_key: String, [INFO] [stdout] ... | [INFO] [stdout] 569 | | llm_status_callback: Arc>, [INFO] [stdout] 570 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/agent.rs:657:13 [INFO] [stdout] | [INFO] [stdout] 657 | / if !content_buf.is_empty() { [INFO] [stdout] 658 | | if let Ok(mut g) = log_callback.lock() { [INFO] [stdout] 659 | | g.push((agent_id, LogEntry::AgentThinking(content_buf))); [INFO] [stdout] 660 | | } [INFO] [stdout] 661 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 657 ~ if !content_buf.is_empty() [INFO] [stdout] 658 ~ && let Ok(mut g) = log_callback.lock() { [INFO] [stdout] 659 | g.push((agent_id, LogEntry::AgentThinking(content_buf))); [INFO] [stdout] 660 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/agent.rs:1233:17 [INFO] [stdout] | [INFO] [stdout] 1233 | return MovementStatus::Completed; [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] 1233 - return MovementStatus::Completed; [INFO] [stdout] 1233 + MovementStatus::Completed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/agent.rs:1236:17 [INFO] [stdout] | [INFO] [stdout] 1236 | return MovementStatus::StepSuccess; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1236 - return MovementStatus::StepSuccess; [INFO] [stdout] 1236 + MovementStatus::StepSuccess [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/agent.rs:1241:13 [INFO] [stdout] | [INFO] [stdout] 1241 | return MovementStatus::Completed; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1241 - return MovementStatus::Completed; [INFO] [stdout] 1241 + MovementStatus::Completed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/agent.rs:1157:9 [INFO] [stdout] | [INFO] [stdout] 1157 | / if let Some(next_at) = self.next_step_at { [INFO] [stdout] 1158 | | if now < next_at { [INFO] [stdout] 1159 | | return MovementStatus::StepSuccess; // Still waiting [INFO] [stdout] 1160 | | } [INFO] [stdout] 1161 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1157 ~ if let Some(next_at) = self.next_step_at [INFO] [stdout] 1158 ~ && now < next_at { [INFO] [stdout] 1159 | return MovementStatus::StepSuccess; // Still waiting [INFO] [stdout] 1160 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/animation.rs:70:24 [INFO] [stdout] | [INFO] [stdout] 70 | if (frame as usize + result.len()) % 3 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(frame as usize + result.len()).is_multiple_of(3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | / if let Some(window) = web_sys::window() { [INFO] [stdout] 78 | | if let Ok(Some(storage)) = window.local_storage() { [INFO] [stdout] 79 | | let _ = storage.set_item("openrouter_api_key", api_key); [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 77 ~ if let Some(window) = web_sys::window() [INFO] [stdout] 78 ~ && let Ok(Some(storage)) = window.local_storage() { [INFO] [stdout] 79 | let _ = storage.set_item("openrouter_api_key", api_key); [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:167:13 [INFO] [stdout] | [INFO] [stdout] 167 | / if let Err(ref err_msg) = result { [INFO] [stdout] 168 | | if err_msg.starts_with("ABORT:") { [INFO] [stdout] 169 | | // Cancel all remaining events for this agent [INFO] [stdout] 170 | | if let Some(agent_id) = agent_id_for_cancel { [INFO] [stdout] ... | [INFO] [stdout] 177 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 167 ~ if let Err(ref err_msg) = result [INFO] [stdout] 168 ~ && err_msg.starts_with("ABORT:") { [INFO] [stdout] 169 | // Cancel all remaining events for this agent [INFO] [stdout] ... [INFO] [stdout] 175 | } [INFO] [stdout] 176 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/agent.rs:1233:17 [INFO] [stdout] | [INFO] [stdout] 1233 | return MovementStatus::Completed; [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] 1233 - return MovementStatus::Completed; [INFO] [stdout] 1233 + MovementStatus::Completed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/agent.rs:1236:17 [INFO] [stdout] | [INFO] [stdout] 1236 | return MovementStatus::StepSuccess; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1236 - return MovementStatus::StepSuccess; [INFO] [stdout] 1236 + MovementStatus::StepSuccess [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/agent.rs:1241:13 [INFO] [stdout] | [INFO] [stdout] 1241 | return MovementStatus::Completed; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1241 - return MovementStatus::Completed; [INFO] [stdout] 1241 + MovementStatus::Completed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/agent.rs:1157:9 [INFO] [stdout] | [INFO] [stdout] 1157 | / if let Some(next_at) = self.next_step_at { [INFO] [stdout] 1158 | | if now < next_at { [INFO] [stdout] 1159 | | return MovementStatus::StepSuccess; // Still waiting [INFO] [stdout] 1160 | | } [INFO] [stdout] 1161 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1157 ~ if let Some(next_at) = self.next_step_at [INFO] [stdout] 1158 ~ && now < next_at { [INFO] [stdout] 1159 | return MovementStatus::StepSuccess; // Still waiting [INFO] [stdout] 1160 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:606:17 [INFO] [stdout] | [INFO] [stdout] 606 | &painter, [INFO] [stdout] | ^^^^^^^^ help: change this to: `painter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/animation.rs:70:24 [INFO] [stdout] | [INFO] [stdout] 70 | if (frame as usize + result.len()) % 3 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(frame as usize + result.len()).is_multiple_of(3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/board/board_input.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn handle_input( [INFO] [stdout] 14 | | ui: &mut egui::Ui, [INFO] [stdout] 15 | | rect: Rect, [INFO] [stdout] 16 | | board_side: f32, [INFO] [stdout] ... | [INFO] [stdout] 24 | | selected_tile: &mut Option<(usize, usize)>, [INFO] [stdout] 25 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | / if is_dragging { [INFO] [stdout] 50 | | if let Some(pos) = pointer_pos { [INFO] [stdout] 51 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] ... | [INFO] [stdout] 55 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 49 ~ if is_dragging [INFO] [stdout] 50 ~ && let Some(pos) = pointer_pos { [INFO] [stdout] 51 | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] 53 | } [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | / if let Some(pos) = pointer_pos { [INFO] [stdout] 51 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] 53 | | } [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 50 ~ if let Some(pos) = pointer_pos [INFO] [stdout] 51 ~ && let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] 53 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | / if response.hovered() { [INFO] [stdout] 61 | | if let Some(pos) = pointer_pos { [INFO] [stdout] 62 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] ... | [INFO] [stdout] 83 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 60 ~ if response.hovered() [INFO] [stdout] 61 ~ && let Some(pos) = pointer_pos { [INFO] [stdout] 62 | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] ... [INFO] [stdout] 81 | } [INFO] [stdout] 82 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | / if let Some(pos) = pointer_pos { [INFO] [stdout] 62 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] ... | [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if let Some(pos) = pointer_pos [INFO] [stdout] 62 ~ && let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] 63 | { [INFO] [stdout] ... [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | / if let Some(window) = web_sys::window() { [INFO] [stdout] 78 | | if let Ok(Some(storage)) = window.local_storage() { [INFO] [stdout] 79 | | let _ = storage.set_item("openrouter_api_key", api_key); [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 77 ~ if let Some(window) = web_sys::window() [INFO] [stdout] 78 ~ && let Ok(Some(storage)) = window.local_storage() { [INFO] [stdout] 79 | let _ = storage.set_item("openrouter_api_key", api_key); [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:167:13 [INFO] [stdout] | [INFO] [stdout] 167 | / if let Err(ref err_msg) = result { [INFO] [stdout] 168 | | if err_msg.starts_with("ABORT:") { [INFO] [stdout] 169 | | // Cancel all remaining events for this agent [INFO] [stdout] 170 | | if let Some(agent_id) = agent_id_for_cancel { [INFO] [stdout] ... | [INFO] [stdout] 177 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 167 ~ if let Err(ref err_msg) = result [INFO] [stdout] 168 ~ && err_msg.starts_with("ABORT:") { [INFO] [stdout] 169 | // Cancel all remaining events for this agent [INFO] [stdout] ... [INFO] [stdout] 175 | } [INFO] [stdout] 176 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_operations.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / if let Some(window) = web_sys::window() { [INFO] [stdout] 86 | | if let Ok(navigator) = window.navigator().dyn_into::() { [INFO] [stdout] 87 | | if let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] 88 | | let text = text.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 95 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 85 ~ if let Some(window) = web_sys::window() [INFO] [stdout] 86 ~ && let Ok(navigator) = window.navigator().dyn_into::() { [INFO] [stdout] 87 | if let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] ... [INFO] [stdout] 93 | } [INFO] [stdout] 94 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_operations.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | / if let Ok(navigator) = window.navigator().dyn_into::() { [INFO] [stdout] 87 | | if let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] 88 | | let text = text.to_string(); [INFO] [stdout] 89 | | wasm_bindgen_futures::spawn_local(async move { [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ if let Ok(navigator) = window.navigator().dyn_into::() [INFO] [stdout] 87 ~ && let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] 88 | let text = text.to_string(); [INFO] [stdout] ... [INFO] [stdout] 92 | }); [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | / if ui.text_edit_singleline(&mut width_str).changed() { [INFO] [stdout] 40 | | if let Ok(w) = width_str.parse::() { [INFO] [stdout] 41 | | if w > 0 && w <= 100 { [INFO] [stdout] ... | [INFO] [stdout] 46 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 39 ~ if ui.text_edit_singleline(&mut width_str).changed() [INFO] [stdout] 40 ~ && let Ok(w) = width_str.parse::() { [INFO] [stdout] 41 | if w > 0 && w <= 100 { [INFO] [stdout] ... [INFO] [stdout] 44 | } [INFO] [stdout] 45 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | / if let Ok(w) = width_str.parse::() { [INFO] [stdout] 41 | | if w > 0 && w <= 100 { [INFO] [stdout] 42 | | // Reasonable limits [INFO] [stdout] 43 | | editor_state.edit_map_width = w; [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 40 ~ if let Ok(w) = width_str.parse::() [INFO] [stdout] 41 ~ && w > 0 && w <= 100 { [INFO] [stdout] 42 | // Reasonable limits [INFO] [stdout] 43 | editor_state.edit_map_width = w; [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | / if ui.text_edit_singleline(&mut height_str).changed() { [INFO] [stdout] 51 | | if let Ok(h) = height_str.parse::() { [INFO] [stdout] 52 | | if h > 0 && h <= 100 { [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 50 ~ if ui.text_edit_singleline(&mut height_str).changed() [INFO] [stdout] 51 ~ && let Ok(h) = height_str.parse::() { [INFO] [stdout] 52 | if h > 0 && h <= 100 { [INFO] [stdout] ... [INFO] [stdout] 55 | } [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | / if let Ok(h) = height_str.parse::() { [INFO] [stdout] 52 | | if h > 0 && h <= 100 { [INFO] [stdout] 53 | | // Reasonable limits [INFO] [stdout] 54 | | editor_state.edit_map_height = h; [INFO] [stdout] 55 | | } [INFO] [stdout] 56 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 51 ~ if let Ok(h) = height_str.parse::() [INFO] [stdout] 52 ~ && h > 0 && h <= 100 { [INFO] [stdout] 53 | // Reasonable limits [INFO] [stdout] 54 | editor_state.edit_map_height = h; [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/events.rs:76:16 [INFO] [stdout] | [INFO] [stdout] 76 | completed: Arc)>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:606:17 [INFO] [stdout] | [INFO] [stdout] 606 | &painter, [INFO] [stdout] | ^^^^^^^^ help: change this to: `painter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/board/board_input.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn handle_input( [INFO] [stdout] 14 | | ui: &mut egui::Ui, [INFO] [stdout] 15 | | rect: Rect, [INFO] [stdout] 16 | | board_side: f32, [INFO] [stdout] ... | [INFO] [stdout] 24 | | selected_tile: &mut Option<(usize, usize)>, [INFO] [stdout] 25 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | / if is_dragging { [INFO] [stdout] 50 | | if let Some(pos) = pointer_pos { [INFO] [stdout] 51 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] ... | [INFO] [stdout] 55 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 49 ~ if is_dragging [INFO] [stdout] 50 ~ && let Some(pos) = pointer_pos { [INFO] [stdout] 51 | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] 53 | } [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | / if let Some(pos) = pointer_pos { [INFO] [stdout] 51 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] 53 | | } [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 50 ~ if let Some(pos) = pointer_pos [INFO] [stdout] 51 ~ && let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) { [INFO] [stdout] 52 | map.set(c, r, editor_state.selected_edit_tile); [INFO] [stdout] 53 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | / if response.hovered() { [INFO] [stdout] 61 | | if let Some(pos) = pointer_pos { [INFO] [stdout] 62 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] ... | [INFO] [stdout] 83 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 60 ~ if response.hovered() [INFO] [stdout] 61 ~ && let Some(pos) = pointer_pos { [INFO] [stdout] 62 | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] ... [INFO] [stdout] 81 | } [INFO] [stdout] 82 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/board/board_input.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | / if let Some(pos) = pointer_pos { [INFO] [stdout] 62 | | if let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] ... | [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if let Some(pos) = pointer_pos [INFO] [stdout] 62 ~ && let Some((r, c)) = BoardRenderer::screen_to_grid(pos, rect, board_side, board_dim) [INFO] [stdout] 63 | { [INFO] [stdout] ... [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/events.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | / if let Some(pos) = queue.iter().position(|e| e.is_ready() && e.status == EventStatus::Pending) { [INFO] [stdout] 145 | | if let Some(mut event) = queue.remove(pos) { [INFO] [stdout] 146 | | event.status = EventStatus::Processing; [INFO] [stdout] ... | [INFO] [stdout] 151 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 144 ~ if let Some(pos) = queue.iter().position(|e| e.is_ready() && e.status == EventStatus::Pending) [INFO] [stdout] 145 ~ && let Some(mut event) = queue.remove(pos) { [INFO] [stdout] 146 | event.status = EventStatus::Processing; [INFO] [stdout] ... [INFO] [stdout] 149 | return Some(event); [INFO] [stdout] 150 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_operations.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / if let Some(window) = web_sys::window() { [INFO] [stdout] 86 | | if let Ok(navigator) = window.navigator().dyn_into::() { [INFO] [stdout] 87 | | if let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] 88 | | let text = text.to_string(); [INFO] [stdout] ... | [INFO] [stdout] 95 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 85 ~ if let Some(window) = web_sys::window() [INFO] [stdout] 86 ~ && let Ok(navigator) = window.navigator().dyn_into::() { [INFO] [stdout] 87 | if let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] ... [INFO] [stdout] 93 | } [INFO] [stdout] 94 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_operations.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | / if let Ok(navigator) = window.navigator().dyn_into::() { [INFO] [stdout] 87 | | if let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] 88 | | let text = text.to_string(); [INFO] [stdout] 89 | | wasm_bindgen_futures::spawn_local(async move { [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ if let Ok(navigator) = window.navigator().dyn_into::() [INFO] [stdout] 87 ~ && let Ok(clipboard) = navigator.clipboard().dyn_into::() { [INFO] [stdout] 88 | let text = text.to_string(); [INFO] [stdout] ... [INFO] [stdout] 92 | }); [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | / if ui.text_edit_singleline(&mut width_str).changed() { [INFO] [stdout] 40 | | if let Ok(w) = width_str.parse::() { [INFO] [stdout] 41 | | if w > 0 && w <= 100 { [INFO] [stdout] ... | [INFO] [stdout] 46 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 39 ~ if ui.text_edit_singleline(&mut width_str).changed() [INFO] [stdout] 40 ~ && let Ok(w) = width_str.parse::() { [INFO] [stdout] 41 | if w > 0 && w <= 100 { [INFO] [stdout] ... [INFO] [stdout] 44 | } [INFO] [stdout] 45 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | / if let Ok(w) = width_str.parse::() { [INFO] [stdout] 41 | | if w > 0 && w <= 100 { [INFO] [stdout] 42 | | // Reasonable limits [INFO] [stdout] 43 | | editor_state.edit_map_width = w; [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 40 ~ if let Ok(w) = width_str.parse::() [INFO] [stdout] 41 ~ && w > 0 && w <= 100 { [INFO] [stdout] 42 | // Reasonable limits [INFO] [stdout] 43 | editor_state.edit_map_width = w; [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | / if ui.text_edit_singleline(&mut height_str).changed() { [INFO] [stdout] 51 | | if let Ok(h) = height_str.parse::() { [INFO] [stdout] 52 | | if h > 0 && h <= 100 { [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 50 ~ if ui.text_edit_singleline(&mut height_str).changed() [INFO] [stdout] 51 ~ && let Ok(h) = height_str.parse::() { [INFO] [stdout] 52 | if h > 0 && h <= 100 { [INFO] [stdout] ... [INFO] [stdout] 55 | } [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/editor/editor_ui.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | / if let Ok(h) = height_str.parse::() { [INFO] [stdout] 52 | | if h > 0 && h <= 100 { [INFO] [stdout] 53 | | // Reasonable limits [INFO] [stdout] 54 | | editor_state.edit_map_height = h; [INFO] [stdout] 55 | | } [INFO] [stdout] 56 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 51 ~ if let Ok(h) = height_str.parse::() [INFO] [stdout] 52 ~ && h > 0 && h <= 100 { [INFO] [stdout] 53 | // Reasonable limits [INFO] [stdout] 54 | editor_state.edit_map_height = h; [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/map.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | / if let Some(row) = self.tiles.get_mut(y) { [INFO] [stdout] 81 | | if let Some(tile) = row.get_mut(x) { [INFO] [stdout] 82 | | *tile = kind; [INFO] [stdout] 83 | | return true; [INFO] [stdout] 84 | | } [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 80 ~ if let Some(row) = self.tiles.get_mut(y) [INFO] [stdout] 81 ~ && let Some(tile) = row.get_mut(x) { [INFO] [stdout] 82 | *tile = kind; [INFO] [stdout] 83 | return true; [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/events.rs:76:16 [INFO] [stdout] | [INFO] [stdout] 76 | completed: Arc)>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/map.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | / if let Some(row) = self.tiles.get_mut(yy) { [INFO] [stdout] 103 | | if let Some(tile) = row.get_mut(xx) { [INFO] [stdout] 104 | | *tile = kind; [INFO] [stdout] 105 | | } [INFO] [stdout] 106 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 102 ~ if let Some(row) = self.tiles.get_mut(yy) [INFO] [stdout] 103 ~ && let Some(tile) = row.get_mut(xx) { [INFO] [stdout] 104 | *tile = kind; [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/events.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | / if let Some(pos) = queue.iter().position(|e| e.is_ready() && e.status == EventStatus::Pending) { [INFO] [stdout] 145 | | if let Some(mut event) = queue.remove(pos) { [INFO] [stdout] 146 | | event.status = EventStatus::Processing; [INFO] [stdout] ... | [INFO] [stdout] 151 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 144 ~ if let Some(pos) = queue.iter().position(|e| e.is_ready() && e.status == EventStatus::Pending) [INFO] [stdout] 145 ~ && let Some(mut event) = queue.remove(pos) { [INFO] [stdout] 146 | event.status = EventStatus::Processing; [INFO] [stdout] ... [INFO] [stdout] 149 | return Some(event); [INFO] [stdout] 150 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/map.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | / if let Some(row) = self.tiles.get_mut(y) { [INFO] [stdout] 81 | | if let Some(tile) = row.get_mut(x) { [INFO] [stdout] 82 | | *tile = kind; [INFO] [stdout] 83 | | return true; [INFO] [stdout] 84 | | } [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 80 ~ if let Some(row) = self.tiles.get_mut(y) [INFO] [stdout] 81 ~ && let Some(tile) = row.get_mut(x) { [INFO] [stdout] 82 | *tile = kind; [INFO] [stdout] 83 | return true; [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/map.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | / if let Some(row) = self.tiles.get_mut(yy) { [INFO] [stdout] 103 | | if let Some(tile) = row.get_mut(xx) { [INFO] [stdout] 104 | | *tile = kind; [INFO] [stdout] 105 | | } [INFO] [stdout] 106 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 102 ~ if let Some(row) = self.tiles.get_mut(yy) [INFO] [stdout] 103 ~ && let Some(tile) = row.get_mut(xx) { [INFO] [stdout] 104 | *tile = kind; [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/openrouter.rs:65:6 [INFO] [stdout] | [INFO] [stdout] 65 | ) -> Pin>>>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/openrouter.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | / if let Ok(json) = serde_json::from_str::(data) { [INFO] [stdout] 109 | | if let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) { [INFO] [stdout] 110 | | if let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] 111 | | if let Some(content) = delta.get("content").and_then(|c| c.as_str()) { [INFO] [stdout] ... | [INFO] [stdout] 127 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 108 ~ if let Ok(json) = serde_json::from_str::(data) [INFO] [stdout] 109 ~ && let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) { [INFO] [stdout] 110 | if let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] ... [INFO] [stdout] 125 | } [INFO] [stdout] 126 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/openrouter.rs:109:21 [INFO] [stdout] | [INFO] [stdout] 109 | / if let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) { [INFO] [stdout] 110 | | if let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] 111 | | if let Some(content) = delta.get("content").and_then(|c| c.as_str()) { [INFO] [stdout] 112 | | yield Ok(OpenRouterEvent::Content(content.to_string())); [INFO] [stdout] ... | [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 109 ~ if let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) [INFO] [stdout] 110 ~ && let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] 111 | if let Some(content) = delta.get("content").and_then(|c| c.as_str()) { [INFO] [stdout] ... [INFO] [stdout] 124 | } [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/rendering/ui.rs:134:33 [INFO] [stdout] | [INFO] [stdout] 134 | / ... if let (Some(x), Some(y)) = (area.get("x"), area.get("y")) { [INFO] [stdout] 135 | | ... if let (Some(x_val), Some(y_val)) = (x.as_u64(), y.as_u64()) { [INFO] [stdout] 136 | | ... ui.label(egui::RichText::new(format!("Area centered at ({}, {})", x_val, y_val)) [INFO] [stdout] 137 | | ... .small() [INFO] [stdout] ... | [INFO] [stdout] 140 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 134 ~ if let (Some(x), Some(y)) = (area.get("x"), area.get("y")) [INFO] [stdout] 135 ~ && let (Some(x_val), Some(y_val)) = (x.as_u64(), y.as_u64()) { [INFO] [stdout] 136 | ui.label(egui::RichText::new(format!("Area centered at ({}, {})", x_val, y_val)) [INFO] [stdout] 137 | .small() [INFO] [stdout] 138 | .color(egui::Color32::from_rgb(80, 120, 160))); [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/openrouter.rs:65:6 [INFO] [stdout] | [INFO] [stdout] 65 | ) -> Pin>>>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/openrouter.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | / if let Ok(json) = serde_json::from_str::(data) { [INFO] [stdout] 109 | | if let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) { [INFO] [stdout] 110 | | if let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] 111 | | if let Some(content) = delta.get("content").and_then(|c| c.as_str()) { [INFO] [stdout] ... | [INFO] [stdout] 127 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 108 ~ if let Ok(json) = serde_json::from_str::(data) [INFO] [stdout] 109 ~ && let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) { [INFO] [stdout] 110 | if let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] ... [INFO] [stdout] 125 | } [INFO] [stdout] 126 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/openrouter.rs:109:21 [INFO] [stdout] | [INFO] [stdout] 109 | / if let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) { [INFO] [stdout] 110 | | if let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] 111 | | if let Some(content) = delta.get("content").and_then(|c| c.as_str()) { [INFO] [stdout] 112 | | yield Ok(OpenRouterEvent::Content(content.to_string())); [INFO] [stdout] ... | [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 109 ~ if let Some(choice) = json["choices"].as_array().and_then(|c| c.first()) [INFO] [stdout] 110 ~ && let Some(delta) = choice["delta"].as_object() { [INFO] [stdout] 111 | if let Some(content) = delta.get("content").and_then(|c| c.as_str()) { [INFO] [stdout] ... [INFO] [stdout] 124 | } [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/ui/agent_panel.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | &animation_controller.get_processing_text(event_queue.pending_count()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `animation_controller.get_processing_text(event_queue.pending_count())` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/ui/agent_panel.rs:57:37 [INFO] [stdout] | [INFO] [stdout] 57 | egui::RichText::new(&animation_controller.get_thinking_text()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `animation_controller.get_thinking_text()` [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 `if` statement can be collapsed [INFO] [stdout] --> src/rendering/ui.rs:134:33 [INFO] [stdout] | [INFO] [stdout] 134 | / ... if let (Some(x), Some(y)) = (area.get("x"), area.get("y")) { [INFO] [stdout] 135 | | ... if let (Some(x_val), Some(y_val)) = (x.as_u64(), y.as_u64()) { [INFO] [stdout] 136 | | ... ui.label(egui::RichText::new(format!("Area centered at ({}, {})", x_val, y_val)) [INFO] [stdout] 137 | | ... .small() [INFO] [stdout] ... | [INFO] [stdout] 140 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 134 ~ if let (Some(x), Some(y)) = (area.get("x"), area.get("y")) [INFO] [stdout] 135 ~ && let (Some(x_val), Some(y_val)) = (x.as_u64(), y.as_u64()) { [INFO] [stdout] 136 | ui.label(egui::RichText::new(format!("Area centered at ({}, {})", x_val, y_val)) [INFO] [stdout] 137 | .small() [INFO] [stdout] 138 | .color(egui::Color32::from_rgb(80, 120, 160))); [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/ui/agent_panel.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | &animation_controller.get_processing_text(event_queue.pending_count()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `animation_controller.get_processing_text(event_queue.pending_count())` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/ui/agent_panel.rs:57:37 [INFO] [stdout] | [INFO] [stdout] 57 | egui::RichText::new(&animation_controller.get_thinking_text()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `animation_controller.get_thinking_text()` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 20s [INFO] running `Command { std: "docker" "inspect" "0564f01afae6963e1023a3d23c52aa7231fb1a27a69851e06812be40a385f192", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0564f01afae6963e1023a3d23c52aa7231fb1a27a69851e06812be40a385f192", kill_on_drop: false }` [INFO] [stdout] 0564f01afae6963e1023a3d23c52aa7231fb1a27a69851e06812be40a385f192