[INFO] cloning repository https://github.com/jpvw-6560/grafcet_editor
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jpvw-6560/grafcet_editor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpvw-6560%2Fgrafcet_editor", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpvw-6560%2Fgrafcet_editor'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c8f5ce98273ec017bd4aaa288768624962029d5e
[INFO] checking jpvw-6560/grafcet_editor against 3d50c25bc66853bf0ad205529d0f305a1d841b5e for pr-159598
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpvw-6560%2Fgrafcet_editor" "/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/jpvw-6560/grafcet_editor
[INFO] finished tweaking git repo https://github.com/jpvw-6560/grafcet_editor
[INFO] tweaked toml for git repo https://github.com/jpvw-6560/grafcet_editor written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jpvw-6560/grafcet_editor on toolchain 3d50c25bc66853bf0ad205529d0f305a1d841b5e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jpvw-6560/grafcet_editor 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" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded font-types v0.11.2
[INFO] [stderr]   Downloaded peniko v0.6.0
[INFO] [stderr]   Downloaded color v0.3.2
[INFO] [stderr]   Downloaded epaint v0.34.1
[INFO] [stderr]   Downloaded ecolor v0.34.1
[INFO] [stderr]   Downloaded emath v0.34.1
[INFO] [stderr]   Downloaded wgpu-naga-bridge v29.0.1
[INFO] [stderr]   Downloaded wgpu-core-deps-wasm v29.0.0
[INFO] [stderr]   Downloaded wgpu-core-deps-emscripten v29.0.0
[INFO] [stderr]   Downloaded toml_edit v0.25.10+spec-1.1.0
[INFO] [stderr]   Downloaded wgpu-core-deps-windows-linux-android v29.0.0
[INFO] [stderr]   Downloaded wgpu-core-deps-apple v29.0.0
[INFO] [stderr]   Downloaded egui_glow v0.34.1
[INFO] [stderr]   Downloaded egui-winit v0.34.1
[INFO] [stderr]   Downloaded webbrowser v1.2.0
[INFO] [stderr]   Downloaded eframe v0.34.1
[INFO] [stderr]   Downloaded wgpu-types v29.0.1
[INFO] [stderr]   Downloaded accesskit_unix v0.21.0
[INFO] [stderr]   Downloaded wgpu v29.0.1
[INFO] [stderr]   Downloaded zbus_xml v5.1.0
[INFO] [stderr]   Downloaded accesskit_atspi_common v0.18.0
[INFO] [stderr]   Downloaded accesskit_macos v0.26.0
[INFO] [stderr]   Downloaded egui v0.34.1
[INFO] [stderr]   Downloaded wgpu-core v29.0.1
[INFO] [stderr]   Downloaded egui-wgpu v0.34.1
[INFO] [stderr]   Downloaded wgpu-hal v29.0.1
[INFO] [stderr]   Downloaded epaint_default_fonts v0.34.1
[INFO] [stderr]   Downloaded naga v29.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab
[INFO] running `Command { std: "docker" "start" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab" "/opt/rustwide/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab" "/opt/rustwide/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]    Compiling naga v29.0.1
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking spirv v0.4.0+sdk-1.4.341.0
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]    Compiling wgpu-hal v29.0.1
[INFO] [stderr]     Checking ordered-float v5.3.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling wgpu-core v29.0.1
[INFO] [stderr]     Checking epaint_default_fonts v0.34.1
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]    Compiling wgpu v29.0.1
[INFO] [stderr]     Checking type-map v0.5.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling toml_edit v0.25.10+spec-1.1.0
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling enumn v0.1.14
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking gpu-allocator v0.28.0
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking color v0.3.2
[INFO] [stderr]     Checking fearless_simd v0.3.0
[INFO] [stderr]     Checking wgpu-types v29.0.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking zerocopy v0.8.48
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking zvariant_utils v3.3.0
[INFO] [stderr]     Checking quick-xml v0.38.4
[INFO] [stderr]     Checking accesskit v0.24.0
[INFO] [stderr]     Checking font-types v0.11.2
[INFO] [stderr]     Checking emath v0.34.1
[INFO] [stderr]     Checking ron v0.12.1
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking kurbo v0.13.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]    Compiling zvariant_derive v5.10.0
[INFO] [stderr]     Checking read-fonts v0.37.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ecolor v0.34.1
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking wayland-client v0.31.14
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking peniko v0.6.0
[INFO] [stderr]    Compiling zvariant v5.10.0
[INFO] [stderr]     Checking vello_common v0.0.6
[INFO] [stderr]     Checking accesskit_consumer v0.35.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking vello_cpu v0.0.6
[INFO] [stderr]     Checking webbrowser v1.2.0
[INFO] [stderr]     Checking wayland-protocols v0.32.12
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking zbus_names v4.3.1
[INFO] [stderr]     Checking zbus_xml v5.1.0
[INFO] [stderr]     Checking zbus-lockstep v0.5.2
[INFO] [stderr]    Compiling zbus_macros v5.14.0
[INFO] [stderr]     Checking skrifa v0.40.0
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.5.2
[INFO] [stderr]     Checking zbus v5.14.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.12
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking rfd v0.17.2
[INFO] [stderr]     Checking epaint v0.34.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking egui v0.34.1
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking winit v0.30.13
[INFO] [stderr]     Checking atspi-common v0.13.0
[INFO] [stderr]     Checking wgpu-naga-bridge v29.0.1
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v29.0.0
[INFO] [stderr]     Checking atspi-proxies v0.13.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.18.0
[INFO] [stderr]     Checking atspi v0.29.0
[INFO] [stderr]     Checking accesskit_unix v0.21.0
[INFO] [stderr]     Checking accesskit_winit v0.32.2
[INFO] [stderr]     Checking egui-winit v0.34.1
[INFO] [stderr]     Checking egui-wgpu v0.34.1
[INFO] [stderr]     Checking eframe v0.34.1
[INFO] [stderr]     Checking grafcet-editor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `StateType`
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:13:62
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::gemma::{Expr, Gemma, GemmaState, GemmaTransition, StateType};
[INFO] [stdout]    |                                                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateType`
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:13:62
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::gemma::{Expr, Gemma, GemmaState, GemmaTransition, StateType};
[INFO] [stdout]    |                                                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NamedGrafcet`
[INFO] [stdout]   --> src/gui/pages/grafcets_page.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::project::{NamedGrafcet, Project};
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `editor::GrafcetEditor`
[INFO] [stdout]  --> src/gui/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use editor::GrafcetEditor;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `load_project`, `project_dir`, and `save_project`
[INFO] [stdout]  --> src/persistence/mod.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use project_io::{load_project, project_dir, save_project};
[INFO] [stdout]   |                      ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NamedGrafcet`
[INFO] [stdout]   --> src/gui/pages/grafcets_page.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::project::{NamedGrafcet, Project};
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `editor::GrafcetEditor`
[INFO] [stdout]  --> src/gui/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use editor::GrafcetEditor;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `load_project`, `project_dir`, and `save_project`
[INFO] [stdout]  --> src/persistence/mod.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use project_io::{load_project, project_dir, save_project};
[INFO] [stdout]   |                      ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:517:51
[INFO] [stdout]     |
[INFO] [stdout] 517 | ...                   egui::Stroke::new(1.5, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:562:55
[INFO] [stdout]     |
[INFO] [stdout] 562 | ...                   egui::Stroke::new(1.5, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:592:51
[INFO] [stdout]     |
[INFO] [stdout] 592 | ...                   egui::Stroke::new(1.5, egui::Color32::from_rgb(36, 113, 163)),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:517:51
[INFO] [stdout]     |
[INFO] [stdout] 517 | ...                   egui::Stroke::new(1.5, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:748:39
[INFO] [stdout]     |
[INFO] [stdout] 748 |         let color = egui::Stroke::new(0.5, egui::Color32::from_gray(55));
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:562:55
[INFO] [stdout]     |
[INFO] [stdout] 562 | ...                   egui::Stroke::new(1.5, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:592:51
[INFO] [stdout]     |
[INFO] [stdout] 592 | ...                   egui::Stroke::new(1.5, egui::Color32::from_rgb(36, 113, 163)),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/canvas_editor.rs:748:39
[INFO] [stdout]     |
[INFO] [stdout] 748 |         let color = egui::Stroke::new(0.5, egui::Color32::from_gray(55));
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Context::screen_rect`: screen_rect has been split into viewport_rect() and content_rect(). You likely should use content_rect()
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:354:54
[INFO] [stdout]     |
[INFO] [stdout] 354 | ...                   let screen = ctx.screen_rect();
[INFO] [stdout]     |                                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Context::screen_rect`: screen_rect has been split into viewport_rect() and content_rect(). You likely should use content_rect()
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:354:54
[INFO] [stdout]     |
[INFO] [stdout] 354 | ...                   let screen = ctx.screen_rect();
[INFO] [stdout]     |                                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:366:59
[INFO] [stdout]     |
[INFO] [stdout] 366 | ...                   egui::Stroke::new(1.0, border_col),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:413:51
[INFO] [stdout]     |
[INFO] [stdout] 413 | ...                   egui::Stroke::new(1.5, Color32::from_rgb(120, 255, 140)),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:445:58
[INFO] [stdout]     |
[INFO] [stdout] 445 | ...                   let stroke = Stroke::new(1.5, Color32::from_rgb(200, 200, 80));
[INFO] [stdout]     |                                                ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:736:51
[INFO] [stdout]     |
[INFO] [stdout] 736 | ...                   egui::Stroke::new(1.0, Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:366:59
[INFO] [stdout]     |
[INFO] [stdout] 366 | ...                   egui::Stroke::new(1.0, border_col),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:413:51
[INFO] [stdout]     |
[INFO] [stdout] 413 | ...                   egui::Stroke::new(1.5, Color32::from_rgb(120, 255, 140)),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:445:58
[INFO] [stdout]     |
[INFO] [stdout] 445 | ...                   let stroke = Stroke::new(1.5, Color32::from_rgb(200, 200, 80));
[INFO] [stdout]     |                                                ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:736:51
[INFO] [stdout]     |
[INFO] [stdout] 736 | ...                   egui::Stroke::new(1.0, Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1570:46
[INFO] [stdout]      |
[INFO] [stdout] 1570 |     painter.circle_stroke(sp, r, Stroke::new(1.5, Color32::WHITE));
[INFO] [stdout]      |                                              ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1592:48
[INFO] [stdout]      |
[INFO] [stdout] 1592 |     painter.rect_stroke(rect, 1.0, Stroke::new(1.5, Color32::WHITE), egui::StrokeKind::Inside);
[INFO] [stdout]      |                                                ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1570:46
[INFO] [stdout]      |
[INFO] [stdout] 1570 |     painter.circle_stroke(sp, r, Stroke::new(1.5, Color32::WHITE));
[INFO] [stdout]      |                                              ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1592:48
[INFO] [stdout]      |
[INFO] [stdout] 1592 |     painter.rect_stroke(rect, 1.0, Stroke::new(1.5, Color32::WHITE), egui::StrokeKind::Inside);
[INFO] [stdout]      |                                                ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:2185:29
[INFO] [stdout]      |
[INFO] [stdout] 2185 |     let color = Stroke::new(0.5, Color32::from_gray(45));
[INFO] [stdout]      |                             ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:2185:29
[INFO] [stdout]      |
[INFO] [stdout] 2185 |     let color = Stroke::new(0.5, Color32::from_gray(45));
[INFO] [stdout]      |                             ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Panel::default_width`: Renamed default_size
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:322:22
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     .default_width(320.0)
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `egui::Panel::default_width`: Renamed default_size
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:322:22
[INFO] [stdout]     |
[INFO] [stdout] 322 |                     .default_width(320.0)
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/editor.rs:317:51
[INFO] [stdout]     |
[INFO] [stdout] 317 | ...                   egui::Stroke::new(1.5, egui::Color32::from_rgb(36, 113, 163)),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/editor.rs:482:40
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let stroke = egui::Stroke::new(0.5, color);
[INFO] [stdout]     |                                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/editor.rs:317:51
[INFO] [stdout]     |
[INFO] [stdout] 317 | ...                   egui::Stroke::new(1.5, egui::Color32::from_rgb(36, 113, 163)),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/gui/editor.rs:482:40
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let stroke = egui::Stroke::new(0.5, color);
[INFO] [stdout]     |                                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_relachee`
[INFO] [stdout]    --> src/app.rs:430:17
[INFO] [stdout]     |
[INFO] [stdout] 430 |             let cond_relachee = trans_infos.iter()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_relachee`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_relachee`
[INFO] [stdout]    --> src/app.rs:430:17
[INFO] [stdout]     |
[INFO] [stdout] 430 |             let cond_relachee = trans_infos.iter()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_relachee`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/gui/canvas.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |             if let (Some(src), Some(dst)) = (grafcet.step(t.from_step), grafcet.step(t.to_step)) {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/gui/canvas.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |             if let (Some(src), Some(dst)) = (grafcet.step(t.from_step), grafcet.step(t.to_step)) {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/gui/canvas_editor.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 let origin = resp.rect.min;
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/gui/canvas_editor.rs:599:21
[INFO] [stdout]     |
[INFO] [stdout] 599 |                 let origin    = resp.rect.min;
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/gui/canvas_editor.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 let origin = resp.rect.min;
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]    --> src/gui/canvas_editor.rs:599:21
[INFO] [stdout]     |
[INFO] [stdout] 599 |                 let origin    = resp.rect.min;
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:638:29
[INFO] [stdout]     |
[INFO] [stdout] 638 | ...                   _ => {}
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:638:29
[INFO] [stdout]     |
[INFO] [stdout] 542 | ...                   GemmaTool::Select => {
[INFO] [stdout]     |                       ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 566 | ...                   GemmaTool::AddTransition => {
[INFO] [stdout]     |                       ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 618 | ...                   GemmaTool::Delete => {
[INFO] [stdout]     |                       ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 638 | ...                   _ => {}
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:638:29
[INFO] [stdout]     |
[INFO] [stdout] 638 | ...                   _ => {}
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:638:29
[INFO] [stdout]     |
[INFO] [stdout] 542 | ...                   GemmaTool::Select => {
[INFO] [stdout]     |                       ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 566 | ...                   GemmaTool::AddTransition => {
[INFO] [stdout]     |                       ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 618 | ...                   GemmaTool::Delete => {
[INFO] [stdout]     |                       ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 638 | ...                   _ => {}
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_down`
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:460:21
[INFO] [stdout]     |
[INFO] [stdout] 460 |                 let primary_down   = ctx.input(|i| i.pointer.button_down(egui::PointerButton::Primary));
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_down`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_up`
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:461:21
[INFO] [stdout]     |
[INFO] [stdout] 461 |                 let primary_up     = ctx.input(|i| i.pointer.button_released(egui::PointerButton::Primary));
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_up`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_down`
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:460:21
[INFO] [stdout]     |
[INFO] [stdout] 460 |                 let primary_down   = ctx.input(|i| i.pointer.button_down(egui::PointerButton::Primary));
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_down`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_up`
[INFO] [stdout]    --> src/gui/pages/gemma_page.rs:461:21
[INFO] [stdout]     |
[INFO] [stdout] 461 |                 let primary_up     = ctx.input(|i| i.pointer.button_released(egui::PointerButton::Primary));
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_up`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_st` is never used
[INFO] [stdout]   --> src/gemma/mod.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Expr {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn to_st(&self) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]   --> src/gemma/mod.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl StateType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 74 |     pub fn label(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `safety_states`, `command_states`, and `production_states` are never used
[INFO] [stdout]    --> src/gemma/mod.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl Gemma {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn safety_states(&self) -> Vec<&GemmaState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn command_states(&self) -> Vec<&GemmaState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn production_states(&self) -> Vec<&GemmaState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_closed_circuits` is never used
[INFO] [stdout]    --> src/gemma/mod.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn extract_closed_circuits(gemma: &Gemma) -> Vec<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuits_dfs` is never used
[INFO] [stdout]    --> src/gemma/mod.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn circuits_dfs(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C_ARROW` is never used
[INFO] [stdout]   --> src/gui/canvas.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const C_ARROW: Color32 = Color32::from_rgb(200, 200, 200);
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEG_HIT_PX` is never used
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const SEG_HIT_PX: f32 = 12.0; // distance max clic sur handle segment (px écran)
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trans_id`, `seg_idx`, `is_horiz`, `start_cv`, and `orig_pts` are never read
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct DragSegment {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 38 |     trans_id: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     seg_idx:  usize,           // index du 1er point du segment dans waypoints
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 40 |     is_horiz: bool,            // vrai = segment H → drag déplace Y
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 41 |     start_cv: [f32; 2],        // position canvas du curseur au début du drag
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 42 |     orig_pts: Vec<[f32; 2]>,   // snapshot des waypoints au début du drag
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragSegment` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trans_id`, `is_start`, and `fixed_anchor` are never read
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct DragEndpoint {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 48 |     trans_id:     u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 49 |     is_start:     bool,    // true = on déplace le début, false = la fin
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 50 |     fixed_anchor: Anchor,  // l'extrémité qui reste fixe
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragEndpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dragging`, `drag_offset`, `dragging_ep`, and `dragging_seg` are never read
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct GemmaPage {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     dragging:   Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 66 |     drag_offset: Vec2,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     dragging_ep: Option<DragEndpoint>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 81 |     // Déplacement d'un segment intermédiaire (clic sur handle carré en mode Select)
[INFO] [stdout] 82 |     dragging_seg: Option<DragSegment>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_side` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1535:4
[INFO] [stdout]      |
[INFO] [stdout] 1535 | fn detect_side(pos: [f32; 2], state: &GemmaState) -> Side {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seg_handle_range` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1580:4
[INFO] [stdout]      |
[INFO] [stdout] 1580 | fn seg_handle_range(n: usize) -> std::ops::Range<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_seg_handle` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1588:4
[INFO] [stdout]      |
[INFO] [stdout] 1588 | fn draw_seg_handle(painter: &Painter, sp: Pos2, zoom: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_gemma_link` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1932:4
[INFO] [stdout]      |
[INFO] [stdout] 1932 | fn draw_gemma_link(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_gemma_route` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:2034:4
[INFO] [stdout]      |
[INFO] [stdout] 2034 | fn static_gemma_route(from_id: &str, to_id: &str) -> Option<Vec<[f32; 2]>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuit_short_name` is never used
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:466:8
[INFO] [stdout]     |
[INFO] [stdout] 466 | pub fn circuit_short_name(circuit: &[String]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuit_name` is never used
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn circuit_name(circuit: &[String]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuit_to_grafcet` is never used
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:515:8
[INFO] [stdout]     |
[INFO] [stdout] 515 | pub fn circuit_to_grafcet(gemma: &Gemma, circuit: &[String]) -> Grafcet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tool` is never used
[INFO] [stdout]  --> src/gui/editor.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum Tool {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrafcetEditor` is never constructed
[INFO] [stdout]   --> src/gui/editor.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct GrafcetEditor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hit_step`, `draw_grid`, `save`, and `save_as` are never used
[INFO] [stdout]    --> src/gui/editor.rs:461:8
[INFO] [stdout]     |
[INFO] [stdout] 459 | impl GrafcetEditor {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 460 |     /// Trouve l'étape sous le point canvas donné (coordonnées canvas).
[INFO] [stdout] 461 |     fn hit_step(&self, cv: Pos2) -> Option<u32> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     fn draw_grid(&self, painter: &egui::Painter, rect: egui::Rect) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     fn save(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     fn save_as(&mut self) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `grafcet_mut` is never used
[INFO] [stdout]   --> src/project/mod.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl Project {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn grafcet_mut(&mut self, idx: usize) -> Option<&mut NamedGrafcet> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_st` is never used
[INFO] [stdout]   --> src/gemma/mod.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Expr {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn to_st(&self) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]   --> src/gemma/mod.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl StateType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 74 |     pub fn label(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `safety_states`, `command_states`, and `production_states` are never used
[INFO] [stdout]    --> src/gemma/mod.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl Gemma {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn safety_states(&self) -> Vec<&GemmaState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn command_states(&self) -> Vec<&GemmaState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn production_states(&self) -> Vec<&GemmaState> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_closed_circuits` is never used
[INFO] [stdout]    --> src/gemma/mod.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn extract_closed_circuits(gemma: &Gemma) -> Vec<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuits_dfs` is never used
[INFO] [stdout]    --> src/gemma/mod.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn circuits_dfs(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C_ARROW` is never used
[INFO] [stdout]   --> src/gui/canvas.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const C_ARROW: Color32 = Color32::from_rgb(200, 200, 200);
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEG_HIT_PX` is never used
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const SEG_HIT_PX: f32 = 12.0; // distance max clic sur handle segment (px écran)
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trans_id`, `seg_idx`, `is_horiz`, `start_cv`, and `orig_pts` are never read
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct DragSegment {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 38 |     trans_id: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     seg_idx:  usize,           // index du 1er point du segment dans waypoints
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 40 |     is_horiz: bool,            // vrai = segment H → drag déplace Y
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 41 |     start_cv: [f32; 2],        // position canvas du curseur au début du drag
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 42 |     orig_pts: Vec<[f32; 2]>,   // snapshot des waypoints au début du drag
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragSegment` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trans_id`, `is_start`, and `fixed_anchor` are never read
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct DragEndpoint {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 48 |     trans_id:     u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 49 |     is_start:     bool,    // true = on déplace le début, false = la fin
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 50 |     fixed_anchor: Anchor,  // l'extrémité qui reste fixe
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragEndpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dragging`, `drag_offset`, `dragging_ep`, and `dragging_seg` are never read
[INFO] [stdout]   --> src/gui/pages/gemma_page.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct GemmaPage {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     dragging:   Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 66 |     drag_offset: Vec2,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     dragging_ep: Option<DragEndpoint>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 81 |     // Déplacement d'un segment intermédiaire (clic sur handle carré en mode Select)
[INFO] [stdout] 82 |     dragging_seg: Option<DragSegment>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_side` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1535:4
[INFO] [stdout]      |
[INFO] [stdout] 1535 | fn detect_side(pos: [f32; 2], state: &GemmaState) -> Side {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seg_handle_range` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1580:4
[INFO] [stdout]      |
[INFO] [stdout] 1580 | fn seg_handle_range(n: usize) -> std::ops::Range<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_seg_handle` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1588:4
[INFO] [stdout]      |
[INFO] [stdout] 1588 | fn draw_seg_handle(painter: &Painter, sp: Pos2, zoom: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_gemma_link` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:1932:4
[INFO] [stdout]      |
[INFO] [stdout] 1932 | fn draw_gemma_link(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_gemma_route` is never used
[INFO] [stdout]     --> src/gui/pages/gemma_page.rs:2034:4
[INFO] [stdout]      |
[INFO] [stdout] 2034 | fn static_gemma_route(from_id: &str, to_id: &str) -> Option<Vec<[f32; 2]>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuit_short_name` is never used
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:466:8
[INFO] [stdout]     |
[INFO] [stdout] 466 | pub fn circuit_short_name(circuit: &[String]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuit_name` is never used
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn circuit_name(circuit: &[String]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `circuit_to_grafcet` is never used
[INFO] [stdout]    --> src/gui/pages/grafcets_page.rs:515:8
[INFO] [stdout]     |
[INFO] [stdout] 515 | pub fn circuit_to_grafcet(gemma: &Gemma, circuit: &[String]) -> Grafcet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tool` is never used
[INFO] [stdout]  --> src/gui/editor.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum Tool {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrafcetEditor` is never constructed
[INFO] [stdout]   --> src/gui/editor.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct GrafcetEditor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hit_step`, `draw_grid`, `save`, and `save_as` are never used
[INFO] [stdout]    --> src/gui/editor.rs:461:8
[INFO] [stdout]     |
[INFO] [stdout] 459 | impl GrafcetEditor {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 460 |     /// Trouve l'étape sous le point canvas donné (coordonnées canvas).
[INFO] [stdout] 461 |     fn hit_step(&self, cv: Pos2) -> Option<u32> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     fn draw_grid(&self, painter: &egui::Painter, rect: egui::Rect) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     fn save(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     fn save_as(&mut self) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `grafcet_mut` is never used
[INFO] [stdout]   --> src/project/mod.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl Project {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn grafcet_mut(&mut self, idx: usize) -> Option<&mut NamedGrafcet> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 28s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: naga v29.0.1, wgpu v29.0.1, wgpu-core v29.0.1, wgpu-hal v29.0.1, winit v0.30.13
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 8`
[INFO] running `Command { std: "docker" "inspect" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab", kill_on_drop: false }`
[INFO] [stdout] e1160e0aec84030c09c270df0920687b9261fd7d89766044c5ce189fe53121ab
