[INFO] cloning repository https://github.com/dEN5-tech/reassembly_shape_editor
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dEN5-tech/reassembly_shape_editor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FdEN5-tech%2Freassembly_shape_editor", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FdEN5-tech%2Freassembly_shape_editor'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7f2d5aaf21c52949e247106a3a5163ecbe72dbe2
[INFO] checking dEN5-tech/reassembly_shape_editor against try#e983148bd5f0f0db270bfb72149f5e892e68b67f for pr-150322
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FdEN5-tech%2Freassembly_shape_editor" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dEN5-tech/reassembly_shape_editor
[INFO] finished tweaking git repo https://github.com/dEN5-tech/reassembly_shape_editor
[INFO] tweaked toml for git repo https://github.com/dEN5-tech/reassembly_shape_editor written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dEN5-tech/reassembly_shape_editor on toolchain e983148bd5f0f0db270bfb72149f5e892e68b67f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dEN5-tech/reassembly_shape_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" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d27db93d719d0bcf4ac4408ab7a45c979f28d62a013bec0663e546415a7ee531
[INFO] running `Command { std: "docker" "start" "-a" "d27db93d719d0bcf4ac4408ab7a45c979f28d62a013bec0663e546415a7ee531", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d27db93d719d0bcf4ac4408ab7a45c979f28d62a013bec0663e546415a7ee531", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d27db93d719d0bcf4ac4408ab7a45c979f28d62a013bec0663e546415a7ee531", kill_on_drop: false }`
[INFO] [stdout] d27db93d719d0bcf4ac4408ab7a45c979f28d62a013bec0663e546415a7ee531
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 49f23342b860e91b32f55b8902c667b8de2e56fc79286662d99e7b113dc89d99
[INFO] running `Command { std: "docker" "start" "-a" "49f23342b860e91b32f55b8902c667b8de2e56fc79286662d99e7b113dc89d99", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling winnow v0.7.4
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling version-compare v0.2.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling xml-rs v0.8.25
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking libloading v0.8.6
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.100
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling bumpalo v3.17.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.15.4
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]    Compiling rustversion v1.0.20
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling wasm-bindgen v0.2.100
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling winit v0.26.1
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling rfd v0.11.4
[INFO] [stderr]     Checking glow v0.11.2
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]     Checking nix v0.22.3
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking memmap2 v0.3.1
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling toml_edit v0.22.24
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking bytecount v0.6.8
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]    Compiling full_moon_derive v0.11.0
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking wayland-egl v0.29.5
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.100
[INFO] [stderr]    Compiling toml v0.8.20
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]     Checking calloop v0.9.3
[INFO] [stderr]     Checking x11rb v0.9.0
[INFO] [stderr]    Compiling glib-sys v0.16.3
[INFO] [stderr]    Compiling gobject-sys v0.16.3
[INFO] [stderr]    Compiling atk-sys v0.16.0
[INFO] [stderr]    Compiling gdk-sys v0.16.0
[INFO] [stderr]     Checking bytemuck v1.22.0
[INFO] [stderr]    Compiling gio-sys v0.16.3
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.100
[INFO] [stderr]    Compiling cairo-sys-rs v0.16.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling pango-sys v0.16.3
[INFO] [stderr]     Checking emath v0.18.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.16.3
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]    Compiling gtk-sys v0.16.0
[INFO] [stderr]     Checking epaint v0.18.1
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking egui v0.18.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.100
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking js-sys v0.3.77
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking egui_glow v0.18.1
[INFO] [stderr]     Checking arboard v2.1.1
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking smol_str v0.3.2
[INFO] [stderr]     Checking web-sys v0.3.77
[INFO] [stderr]     Checking full_moon v1.2.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking webbrowser v0.7.1
[INFO] [stderr]     Checking glutin v0.28.0
[INFO] [stderr]     Checking egui-winit v0.18.0
[INFO] [stderr]     Checking eframe v0.18.0
[INFO] [stderr]     Checking reassembly_shape_editor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/shape_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[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: `ParseError`
[INFO] [stdout]   --> src/shape_editor.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::parser::{parse_shapes_content, ParseError};
[INFO] [stdout]    |                                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `node::Node` and `visitors::Visitor`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     visitors::Visitor,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     node::Node,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `ShroudComponent`, and `ThrusterProperties`
[INFO] [stdout]   --> src/parser.rs:11:68
[INFO] [stdout]    |
[INFO] [stdout] 11 | ...le, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `PortType`, `Port`, `Scale`, `Shape`, `ShroudComponent`, `ThrusterProperties`, and `Vertex`
[INFO] [stdout]  --> src/serializer.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...pesFile, Shape, Scale, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]   |             ^^^^^  ^^^^^  ^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/shape_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[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: `ParseError`
[INFO] [stdout]   --> src/shape_editor.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::parser::{parse_shapes_content, ParseError};
[INFO] [stdout]    |                                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `node::Node` and `visitors::Visitor`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     visitors::Visitor,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     node::Node,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `ShroudComponent`, and `ThrusterProperties`
[INFO] [stdout]   --> src/parser.rs:11:68
[INFO] [stdout]    |
[INFO] [stdout] 11 | ...le, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `PortType`, `Port`, `Scale`, `Shape`, `ShroudComponent`, `ThrusterProperties`, and `Vertex`
[INFO] [stdout]  --> src/serializer.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...pesFile, Shape, Scale, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]   |             ^^^^^  ^^^^^  ^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_port` is never used
[INFO] [stdout]  --> src/visual.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn draw_port(painter: &Painter, pos: Pos2, port_type: &PortType, selected: bool) {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `port_color` is never used
[INFO] [stdout]   --> src/visual.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn port_color(port_type: &PortType) -> Color32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frame_style` is never used
[INFO] [stdout]    --> src/visual.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn custom_frame_style() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_frame` is never used
[INFO] [stdout]    --> src/visual.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn component_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popup_frame` is never used
[INFO] [stdout]    --> src/visual.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn popup_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_slot_frame` is never used
[INFO] [stdout]    --> src/visual.rs:464:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | pub fn ship_slot_frame(selected: bool) -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_list_item` is never used
[INFO] [stdout]    --> src/visual.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | pub fn ship_list_item(ui: &mut Ui, name: &str, p_value: i32, selected: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resource_indicator` is never used
[INFO] [stdout]    --> src/visual.rs:535:8
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub fn resource_indicator(ui: &mut egui::Ui, label: &str, current: i32, max: i32, color: Color32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_bar` is never used
[INFO] [stdout]    --> src/visual.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 | pub fn status_bar(ui: &mut egui::Ui, current: f32, max: f32, color: Color32) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construction_slot` is never used
[INFO] [stdout]    --> src/visual.rs:586:8
[INFO] [stdout]     |
[INFO] [stdout] 586 | pub fn construction_slot(ui: &mut Ui, slot_number: i32, empty: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_separator` is never used
[INFO] [stdout]    --> src/visual.rs:640:8
[INFO] [stdout]     |
[INFO] [stdout] 640 | pub fn ui_separator(ui: &mut Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_tooltip` is never used
[INFO] [stdout]    --> src/visual.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | pub fn show_tooltip(ui: &egui::Ui, response: &Response, text: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_lua_shapes_legacy` is never used
[INFO] [stdout]    --> src/shape_editor.rs:524:8
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl ShapeEditor {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 524 |     fn parse_lua_shapes_legacy(&self, content: &str) -> Result<Vec<AppShape>, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAU` is never used
[INFO] [stdout]   --> src/geometry.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const TAU: f32 = PI * 2.0;
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GOLDEN_RATIO` is never used
[INFO] [stdout]   --> src/geometry.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const GOLDEN_RATIO: f32 = 1.61803398875;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec3` is never used
[INFO] [stdout]   --> src/geometry.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type Vec3 = glam::Vec3;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec4` is never used
[INFO] [stdout]   --> src/geometry.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Vec4 = glam::Vec4;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type DVec2 = glam::DVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type DVec3 = glam::DVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type DVec4 = glam::DVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type IVec2 = glam::IVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub type IVec3 = glam::IVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type IVec4 = glam::IVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F2` is never used
[INFO] [stdout]   --> src/geometry.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type F2 = Vec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F3` is never used
[INFO] [stdout]   --> src/geometry.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type F3 = Vec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F4` is never used
[INFO] [stdout]   --> src/geometry.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub type F4 = Vec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D2` is never used
[INFO] [stdout]   --> src/geometry.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type D2 = DVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D3` is never used
[INFO] [stdout]   --> src/geometry.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type D3 = DVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D4` is never used
[INFO] [stdout]   --> src/geometry.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type D4 = DVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I2` is never used
[INFO] [stdout]   --> src/geometry.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type I2 = IVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I3` is never used
[INFO] [stdout]   --> src/geometry.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type I3 = IVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I4` is never used
[INFO] [stdout]   --> src/geometry.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub type I4 = IVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trit` is never constructed
[INFO] [stdout]   --> src/geometry.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Trit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_int`, and `from_bool` are never used
[INFO] [stdout]   --> src/geometry.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Trit {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_int(v: i32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn from_bool(v: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error` is never used
[INFO] [stdout]    --> src/geometry.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn fpu_error(x: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn fpu_error_vec2(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn fpu_error_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_min` is never used
[INFO] [stdout]    --> src/geometry.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn vec2_min(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_max` is never used
[INFO] [stdout]    --> src/geometry.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn vec2_max(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn round_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn round_to_f64(a: f64, v: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_dvec2` is never used
[INFO] [stdout]    --> src/geometry.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn round_dvec2(a: DVec2, v: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up` is never used
[INFO] [stdout]    --> src/geometry.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn round_up(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_down` is never used
[INFO] [stdout]    --> src/geometry.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn round_down(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up_power2` is never used
[INFO] [stdout]    --> src/geometry.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn round_up_power2(v: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_to` is never used
[INFO] [stdout]    --> src/geometry.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn ceil_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_to` is never used
[INFO] [stdout]    --> src/geometry.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn floor_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn ceil_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn floor_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_int` is never used
[INFO] [stdout]    --> src/geometry.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn floor_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_int` is never used
[INFO] [stdout]    --> src/geometry.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub fn ceil_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_int` is never used
[INFO] [stdout]    --> src/geometry.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn round_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn floor_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn ceil_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn round_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector` is never used
[INFO] [stdout]    --> src/geometry.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub fn angle_to_vector(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle` is never used
[INFO] [stdout]    --> src/geometry.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn vector_to_angle(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn angle_to_vector_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn vector_to_angle_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v` is never used
[INFO] [stdout]    --> src/geometry.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn a2v(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a` is never used
[INFO] [stdout]    --> src/geometry.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn v2a(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub fn a2v_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub fn v2a_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn dot_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared` is never used
[INFO] [stdout]    --> src/geometry.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn squared<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign` is never used
[INFO] [stdout]    --> src/geometry.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub fn sign<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn sign_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn sign_vec3(v: Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec4` is never used
[INFO] [stdout]    --> src/geometry.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub fn sign_vec4(v: Vec4) -> Vec4 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_int` is never used
[INFO] [stdout]    --> src/geometry.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn sign_int<T>(val: T, threshold: T) -> i8
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate90` is never used
[INFO] [stdout]    --> src/geometry.rs:368:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub fn rotate90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_n90` is never used
[INFO] [stdout]    --> src/geometry.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub fn rotate_n90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_int` is never used
[INFO] [stdout]    --> src/geometry.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn distance_int(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_y` is never used
[INFO] [stdout]    --> src/geometry.rs:386:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub fn to_golden_ratio_y(y: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_x` is never used
[INFO] [stdout]    --> src/geometry.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn to_golden_ratio_x(x: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]    --> src/geometry.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub fn clamp<T>(v: T, mn: T, mx: T) -> T
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 412 | pub fn clamp_vec2(v: Vec2, mn: Vec2, mx: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_length` is never used
[INFO] [stdout]    --> src/geometry.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub fn clamp_length(v: Vec2, mn: f32, mx: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_mag` is never used
[INFO] [stdout]    --> src/geometry.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 | pub fn clamp_mag(v: f32, mn: f32, mx: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn max_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn min_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:459:8
[INFO] [stdout]     |
[INFO] [stdout] 459 | pub fn near_zero(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:465:8
[INFO] [stdout]     |
[INFO] [stdout] 465 | pub fn near_zero_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub fn near_zero_f32(v: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo` is never used
[INFO] [stdout]    --> src/geometry.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn modulo(x: i32, y: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:496:8
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub fn modulo_f32(x: f32, y: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:520:8
[INFO] [stdout]     |
[INFO] [stdout] 520 | pub fn modulo_vec2(val: Vec2, div: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2_scalar` is never used
[INFO] [stdout]    --> src/geometry.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub fn modulo_vec2_scalar(val: Vec2, div: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:532:8
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub fn min_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:538:8
[INFO] [stdout]     |
[INFO] [stdout] 538 | pub fn max_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:544:8
[INFO] [stdout]     |
[INFO] [stdout] 544 | pub fn min_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:550:8
[INFO] [stdout]     |
[INFO] [stdout] 550 | pub fn max_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:556:8
[INFO] [stdout]     |
[INFO] [stdout] 556 | pub fn distance_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_safe` is never used
[INFO] [stdout]    --> src/geometry.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn normalize_safe(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_or_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:573:8
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub fn normalize_or_zero(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:583:8
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub fn pow_vec2(v: Vec2, e: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub fn pow_vec3(v: Vec3, e: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length` is never used
[INFO] [stdout]    --> src/geometry.rs:595:8
[INFO] [stdout]     |
[INFO] [stdout] 595 | pub fn max_length(v: Vec2, max: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_length` is never used
[INFO] [stdout]    --> src/geometry.rs:606:8
[INFO] [stdout]     |
[INFO] [stdout] 606 | pub fn min_length(v: Vec2, min: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:617:8
[INFO] [stdout]     |
[INFO] [stdout] 617 | pub fn length_sqr(a: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:623:8
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub fn distance_sqr(a: Vec2, b: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub fn length_sqr_vec3(a: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:635:8
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub fn distance_sqr_vec3(a: Vec3, b: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_degrees` is never used
[INFO] [stdout]    --> src/geometry.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn to_degrees(radians: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_radians` is never used
[INFO] [stdout]    --> src/geometry.rs:647:8
[INFO] [stdout]     |
[INFO] [stdout] 647 | pub fn to_radians(degrees: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate` is never used
[INFO] [stdout]    --> src/geometry.rs:653:8
[INFO] [stdout]     |
[INFO] [stdout] 653 | pub fn rotate(v: Vec2, a: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec` is never used
[INFO] [stdout]    --> src/geometry.rs:664:8
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub fn rotate_vec(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec_clockwise` is never used
[INFO] [stdout]    --> src/geometry.rs:673:8
[INFO] [stdout]     |
[INFO] [stdout] 673 | pub fn rotate_vec_clockwise(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_xy` is never used
[INFO] [stdout]    --> src/geometry.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 682 | pub fn swap_xy(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y` is never used
[INFO] [stdout]    --> src/geometry.rs:688:8
[INFO] [stdout]     |
[INFO] [stdout] 688 | pub fn flip_y(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x` is never used
[INFO] [stdout]    --> src/geometry.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 694 | pub fn flip_x(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:700:8
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub fn flip_y_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:706:8
[INFO] [stdout]     |
[INFO] [stdout] 706 | pub fn flip_x_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_y` is never used
[INFO] [stdout]    --> src/geometry.rs:712:8
[INFO] [stdout]     |
[INFO] [stdout] 712 | pub fn just_y(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_x` is never used
[INFO] [stdout]    --> src/geometry.rs:718:8
[INFO] [stdout]     |
[INFO] [stdout] 718 | pub fn just_x(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_z` is never used
[INFO] [stdout]    --> src/geometry.rs:724:8
[INFO] [stdout]     |
[INFO] [stdout] 724 | pub fn just_z(v: impl Into<f32>) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:730:8
[INFO] [stdout]     |
[INFO] [stdout] 730 | pub fn lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:738:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | pub fn clamp_lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:746:8
[INFO] [stdout]     |
[INFO] [stdout] 746 | pub fn lerp_angles(a: f32, b: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:752:8
[INFO] [stdout]     |
[INFO] [stdout] 752 | pub fn inv_lerp<T>(zero: T, one: T, val: T) -> f32
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signorm` is never used
[INFO] [stdout]    --> src/geometry.rs:764:8
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub fn signorm(x: f32, k: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smootherstep` is never used
[INFO] [stdout]    --> src/geometry.rs:780:8
[INFO] [stdout]     |
[INFO] [stdout] 780 | pub fn smootherstep(edge0: f32, edge1: f32, x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellcurve` is never used
[INFO] [stdout]    --> src/geometry.rs:787:8
[INFO] [stdout]     |
[INFO] [stdout] 787 | pub fn bellcurve(x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian` is never used
[INFO] [stdout]    --> src/geometry.rs:793:8
[INFO] [stdout]     |
[INFO] [stdout] 793 | pub fn gaussian(x: f32, stdev: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range` is never used
[INFO] [stdout]    --> src/geometry.rs:800:8
[INFO] [stdout]     |
[INFO] [stdout] 800 | pub fn is_in_range<T>(p: T, mn: T, mx: T) -> bool
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:808:8
[INFO] [stdout]     |
[INFO] [stdout] 808 | pub fn is_in_range_vec2(p: Vec2, mn: Vec2, mx: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:814:8
[INFO] [stdout]     |
[INFO] [stdout] 814 | pub fn intersect_point_circle(p: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_ring` is never used
[INFO] [stdout]    --> src/geometry.rs:821:8
[INFO] [stdout]     |
[INFO] [stdout] 821 | pub fn intersect_point_ring(p: Vec2, c: Vec2, min_r: f32, max_r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:829:8
[INFO] [stdout]     |
[INFO] [stdout] 829 | pub fn intersect_circle_circle(p: Vec2, pr: f32, c: Vec2, cr: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle_points` is never used
[INFO] [stdout]    --> src/geometry.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout] 834 | pub fn intersect_circle_circle_points(p: Vec2, pr: f32, c: Vec2, cr: f32) -> Vec<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | pub fn intersect_segment_segment(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment_point` is never used
[INFO] [stdout]    --> src/geometry.rs:914:8
[INFO] [stdout]     |
[INFO] [stdout] 914 | pub fn intersect_segment_segment_point(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> Option<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_point` is never used
[INFO] [stdout]    --> src/geometry.rs:948:8
[INFO] [stdout]     |
[INFO] [stdout] 948 | pub fn intersect_poly_point(points: &[Vec2], point: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:970:8
[INFO] [stdout]     |
[INFO] [stdout] 970 | pub fn intersect_poly_circle(points: &[Vec2], center: Vec2, radius: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:992:8
[INFO] [stdout]     |
[INFO] [stdout] 992 | pub fn intersect_segment_circle(a: Vec2, b: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:998:8
[INFO] [stdout]     |
[INFO] [stdout] 998 | pub fn closest_point_on_segment(a: Vec2, b: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_ray` is never used
[INFO] [stdout]     --> src/geometry.rs:1019:8
[INFO] [stdout]      |
[INFO] [stdout] 1019 | pub fn closest_point_on_ray(a: Vec2, dir: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle` is never used
[INFO] [stdout]     --> src/geometry.rs:1035:8
[INFO] [stdout]      |
[INFO] [stdout] 1035 | pub fn intersect_ray_circle(e: Vec2, d: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle_points` is never used
[INFO] [stdout]     --> src/geometry.rs:1041:8
[INFO] [stdout]      |
[INFO] [stdout] 1041 | pub fn intersect_ray_circle_points(e: Vec2, d: Vec2, c: Vec2, r: f32) -> Vec<Vec2> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_segment` is never used
[INFO] [stdout]     --> src/geometry.rs:1084:8
[INFO] [stdout]      |
[INFO] [stdout] 1084 | pub fn intersect_ray_segment(ray_pt: Vec2, ray_dir: Vec2, sa: Vec2, sb: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_rectangle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1101:8
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub fn intersect_rectangle_rectangle(a: Vec2, ar: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1108:8
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub fn intersect_circle_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1130:8
[INFO] [stdout]      |
[INFO] [stdout] 1130 | pub fn intersect_point_rectangle(p: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle_corners` is never used
[INFO] [stdout]     --> src/geometry.rs:1137:8
[INFO] [stdout]      |
[INFO] [stdout] 1137 | pub fn intersect_point_rectangle_corners(p: Vec2, a: Vec2, b: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contained_circle_in_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1145:8
[INFO] [stdout]      |
[INFO] [stdout] 1145 | pub fn contained_circle_in_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AABBox` is never constructed
[INFO] [stdout]     --> src/geometry.rs:1151:12
[INFO] [stdout]      |
[INFO] [stdout] 1151 | pub struct AABBox {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/geometry.rs:1157:12
[INFO] [stdout]      |
[INFO] [stdout] 1156 | impl AABBox {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] 1157 |     pub fn new(min: Vec2, max: Vec2) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1161 |     pub fn largest() -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     pub fn get_radius(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     pub fn get_center(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1176 |     pub fn get_b_radius(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1180 |     pub fn empty(&self) -> bool {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1184 |     pub fn get_area(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1189 |     pub fn rotated(&self, angle: f32) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     pub fn translated(&self, vec: Vec2) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |     pub fn merged(&self, other: &AABBox) -> Self {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1212 |     pub fn start(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1220 |     pub fn reset(&mut self) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1225 |     pub fn insert_point(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |     pub fn insert_circle(&mut self, pt: Vec2, rad: f32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1237 |     pub fn insert_rect(&mut self, pt: Vec2, rad: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1243 |     pub fn insert_rect_corners(&mut self, p0: Vec2, p1: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1249 |     pub fn insert_poly(&mut self, pts: &[Vec2]) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1261 |     pub fn insert_aabbox(&mut self, bb: &AABBox) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1267 |     pub fn intersect_point(&self, pt: Vec2) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1271 |     pub fn intersect_circle(&self, pt: Vec2, r: f32) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient` is never used
[INFO] [stdout]     --> src/geometry.rs:1278:8
[INFO] [stdout]      |
[INFO] [stdout] 1278 | pub fn orient(p1: Vec2, p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient2` is never used
[INFO] [stdout]     --> src/geometry.rs:1284:8
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub fn orient2(p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `moment_for_poly` is never used
[INFO] [stdout]     --> src/geometry.rs:1305:8
[INFO] [stdout]      |
[INFO] [stdout] 1305 | pub fn moment_for_poly(mass: f32, verts: &[Vec2], offset: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_port` is never used
[INFO] [stdout]  --> src/visual.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn draw_port(painter: &Painter, pos: Pos2, port_type: &PortType, selected: bool) {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `port_color` is never used
[INFO] [stdout]   --> src/visual.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn port_color(port_type: &PortType) -> Color32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frame_style` is never used
[INFO] [stdout]    --> src/visual.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn custom_frame_style() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_frame` is never used
[INFO] [stdout]    --> src/visual.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn component_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popup_frame` is never used
[INFO] [stdout]    --> src/visual.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn popup_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_slot_frame` is never used
[INFO] [stdout]    --> src/visual.rs:464:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | pub fn ship_slot_frame(selected: bool) -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_list_item` is never used
[INFO] [stdout]    --> src/visual.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | pub fn ship_list_item(ui: &mut Ui, name: &str, p_value: i32, selected: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resource_indicator` is never used
[INFO] [stdout]    --> src/visual.rs:535:8
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub fn resource_indicator(ui: &mut egui::Ui, label: &str, current: i32, max: i32, color: Color32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_bar` is never used
[INFO] [stdout]    --> src/visual.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 | pub fn status_bar(ui: &mut egui::Ui, current: f32, max: f32, color: Color32) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construction_slot` is never used
[INFO] [stdout]    --> src/visual.rs:586:8
[INFO] [stdout]     |
[INFO] [stdout] 586 | pub fn construction_slot(ui: &mut Ui, slot_number: i32, empty: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_separator` is never used
[INFO] [stdout]    --> src/visual.rs:640:8
[INFO] [stdout]     |
[INFO] [stdout] 640 | pub fn ui_separator(ui: &mut Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_tooltip` is never used
[INFO] [stdout]    --> src/visual.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | pub fn show_tooltip(ui: &egui::Ui, response: &Response, text: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_lua_shapes_legacy` is never used
[INFO] [stdout]    --> src/shape_editor.rs:524:8
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl ShapeEditor {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 524 |     fn parse_lua_shapes_legacy(&self, content: &str) -> Result<Vec<AppShape>, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAU` is never used
[INFO] [stdout]   --> src/geometry.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const TAU: f32 = PI * 2.0;
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GOLDEN_RATIO` is never used
[INFO] [stdout]   --> src/geometry.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const GOLDEN_RATIO: f32 = 1.61803398875;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec3` is never used
[INFO] [stdout]   --> src/geometry.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type Vec3 = glam::Vec3;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec4` is never used
[INFO] [stdout]   --> src/geometry.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Vec4 = glam::Vec4;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type DVec2 = glam::DVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type DVec3 = glam::DVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type DVec4 = glam::DVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type IVec2 = glam::IVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub type IVec3 = glam::IVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type IVec4 = glam::IVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_apothem` is never used
[INFO] [stdout]     --> src/geometry.rs:1329:8
[INFO] [stdout]      |
[INFO] [stdout] 1329 | pub fn regpoly_apothem(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_circumradius` is never used
[INFO] [stdout]     --> src/geometry.rs:1335:8
[INFO] [stdout]      |
[INFO] [stdout] 1335 | pub fn regpoly_circumradius(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_radius_from_side` is never used
[INFO] [stdout]     --> src/geometry.rs:1341:8
[INFO] [stdout]      |
[INFO] [stdout] 1341 | pub fn regpoly_radius_from_side(n: i32, s: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_area` is never used
[INFO] [stdout]     --> src/geometry.rs:1347:8
[INFO] [stdout]      |
[INFO] [stdout] 1347 | pub fn regpoly_area(n: i32, r: f32, r1: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_perimeter` is never used
[INFO] [stdout]     --> src/geometry.rs:1354:8
[INFO] [stdout]      |
[INFO] [stdout] 1354 | pub fn regpoly_perimeter(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_project` is never used
[INFO] [stdout]  --> src/project_generator.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn generate_project(project_name: &str) -> Result<(), io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_shapes_lua` is never used
[INFO] [stdout]   --> src/project_generator.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn create_shapes_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_blocks_lua` is never used
[INFO] [stdout]    --> src/project_generator.rs:107:4
[INFO] [stdout]     |
[INFO] [stdout] 107 | fn create_blocks_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_factions_lua` is never used
[INFO] [stdout]    --> src/project_generator.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn create_factions_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F2` is never used
[INFO] [stdout]   --> src/geometry.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type F2 = Vec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F3` is never used
[INFO] [stdout]   --> src/geometry.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type F3 = Vec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F4` is never used
[INFO] [stdout]   --> src/geometry.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub type F4 = Vec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D2` is never used
[INFO] [stdout]   --> src/geometry.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type D2 = DVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D3` is never used
[INFO] [stdout]   --> src/geometry.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type D3 = DVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D4` is never used
[INFO] [stdout]   --> src/geometry.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type D4 = DVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I2` is never used
[INFO] [stdout]   --> src/geometry.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type I2 = IVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I3` is never used
[INFO] [stdout]   --> src/geometry.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type I3 = IVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I4` is never used
[INFO] [stdout]   --> src/geometry.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub type I4 = IVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trit` is never constructed
[INFO] [stdout]   --> src/geometry.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Trit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_int`, and `from_bool` are never used
[INFO] [stdout]   --> src/geometry.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Trit {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_int(v: i32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn from_bool(v: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error` is never used
[INFO] [stdout]    --> src/geometry.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn fpu_error(x: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn fpu_error_vec2(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn fpu_error_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_min` is never used
[INFO] [stdout]    --> src/geometry.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn vec2_min(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_max` is never used
[INFO] [stdout]    --> src/geometry.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn vec2_max(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn round_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn round_to_f64(a: f64, v: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_dvec2` is never used
[INFO] [stdout]    --> src/geometry.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn round_dvec2(a: DVec2, v: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up` is never used
[INFO] [stdout]    --> src/geometry.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn round_up(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_down` is never used
[INFO] [stdout]    --> src/geometry.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn round_down(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up_power2` is never used
[INFO] [stdout]    --> src/geometry.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn round_up_power2(v: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_to` is never used
[INFO] [stdout]    --> src/geometry.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn ceil_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_to` is never used
[INFO] [stdout]    --> src/geometry.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn floor_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_regions_lua` is never used
[INFO] [stdout]    --> src/project_generator.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn create_regions_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sample_ship` is never used
[INFO] [stdout]    --> src/project_generator.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn create_sample_ship(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn ceil_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_readme` is never used
[INFO] [stdout]    --> src/project_generator.rs:207:4
[INFO] [stdout]     |
[INFO] [stdout] 207 | fn create_readme(project_dir: &Path, project_name: &str) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_cvars` is never used
[INFO] [stdout]    --> src/project_generator.rs:275:4
[INFO] [stdout]     |
[INFO] [stdout] 275 | fn create_cvars(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_preview_reminder` is never used
[INFO] [stdout]    --> src/project_generator.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn create_preview_reminder(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn floor_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_shape_reference` is never used
[INFO] [stdout]    --> src/project_generator.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn create_shape_reference(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_int` is never used
[INFO] [stdout]    --> src/geometry.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn floor_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_translations` is never used
[INFO] [stdout]   --> src/translations.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn reload_translations() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_int` is never used
[INFO] [stdout]    --> src/geometry.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub fn ceil_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_int` is never used
[INFO] [stdout]    --> src/geometry.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn round_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn floor_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn ceil_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn round_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector` is never used
[INFO] [stdout]    --> src/geometry.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub fn angle_to_vector(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle` is never used
[INFO] [stdout]    --> src/geometry.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn vector_to_angle(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn angle_to_vector_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn vector_to_angle_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v` is never used
[INFO] [stdout]    --> src/geometry.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn a2v(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a` is never used
[INFO] [stdout]    --> src/geometry.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn v2a(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub fn a2v_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub fn v2a_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn dot_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared` is never used
[INFO] [stdout]    --> src/geometry.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn squared<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign` is never used
[INFO] [stdout]    --> src/geometry.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub fn sign<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn sign_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn sign_vec3(v: Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec4` is never used
[INFO] [stdout]    --> src/geometry.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub fn sign_vec4(v: Vec4) -> Vec4 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_int` is never used
[INFO] [stdout]    --> src/geometry.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn sign_int<T>(val: T, threshold: T) -> i8
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate90` is never used
[INFO] [stdout]    --> src/geometry.rs:368:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub fn rotate90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_n90` is never used
[INFO] [stdout]    --> src/geometry.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub fn rotate_n90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_int` is never used
[INFO] [stdout]    --> src/geometry.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn distance_int(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_y` is never used
[INFO] [stdout]    --> src/geometry.rs:386:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub fn to_golden_ratio_y(y: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_x` is never used
[INFO] [stdout]    --> src/geometry.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn to_golden_ratio_x(x: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]    --> src/geometry.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub fn clamp<T>(v: T, mn: T, mx: T) -> T
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 412 | pub fn clamp_vec2(v: Vec2, mn: Vec2, mx: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_length` is never used
[INFO] [stdout]    --> src/geometry.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub fn clamp_length(v: Vec2, mn: f32, mx: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_mag` is never used
[INFO] [stdout]    --> src/geometry.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 | pub fn clamp_mag(v: f32, mn: f32, mx: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn max_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn min_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:459:8
[INFO] [stdout]     |
[INFO] [stdout] 459 | pub fn near_zero(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:465:8
[INFO] [stdout]     |
[INFO] [stdout] 465 | pub fn near_zero_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub fn near_zero_f32(v: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo` is never used
[INFO] [stdout]    --> src/geometry.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn modulo(x: i32, y: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:496:8
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub fn modulo_f32(x: f32, y: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:520:8
[INFO] [stdout]     |
[INFO] [stdout] 520 | pub fn modulo_vec2(val: Vec2, div: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2_scalar` is never used
[INFO] [stdout]    --> src/geometry.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub fn modulo_vec2_scalar(val: Vec2, div: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:532:8
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub fn min_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:538:8
[INFO] [stdout]     |
[INFO] [stdout] 538 | pub fn max_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:544:8
[INFO] [stdout]     |
[INFO] [stdout] 544 | pub fn min_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:550:8
[INFO] [stdout]     |
[INFO] [stdout] 550 | pub fn max_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:556:8
[INFO] [stdout]     |
[INFO] [stdout] 556 | pub fn distance_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_safe` is never used
[INFO] [stdout]    --> src/geometry.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn normalize_safe(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_or_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:573:8
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub fn normalize_or_zero(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:583:8
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub fn pow_vec2(v: Vec2, e: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub fn pow_vec3(v: Vec3, e: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length` is never used
[INFO] [stdout]    --> src/geometry.rs:595:8
[INFO] [stdout]     |
[INFO] [stdout] 595 | pub fn max_length(v: Vec2, max: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_length` is never used
[INFO] [stdout]    --> src/geometry.rs:606:8
[INFO] [stdout]     |
[INFO] [stdout] 606 | pub fn min_length(v: Vec2, min: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:617:8
[INFO] [stdout]     |
[INFO] [stdout] 617 | pub fn length_sqr(a: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:623:8
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub fn distance_sqr(a: Vec2, b: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub fn length_sqr_vec3(a: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:635:8
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub fn distance_sqr_vec3(a: Vec3, b: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_degrees` is never used
[INFO] [stdout]    --> src/geometry.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn to_degrees(radians: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_radians` is never used
[INFO] [stdout]    --> src/geometry.rs:647:8
[INFO] [stdout]     |
[INFO] [stdout] 647 | pub fn to_radians(degrees: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate` is never used
[INFO] [stdout]    --> src/geometry.rs:653:8
[INFO] [stdout]     |
[INFO] [stdout] 653 | pub fn rotate(v: Vec2, a: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec` is never used
[INFO] [stdout]    --> src/geometry.rs:664:8
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub fn rotate_vec(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec_clockwise` is never used
[INFO] [stdout]    --> src/geometry.rs:673:8
[INFO] [stdout]     |
[INFO] [stdout] 673 | pub fn rotate_vec_clockwise(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_xy` is never used
[INFO] [stdout]    --> src/geometry.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 682 | pub fn swap_xy(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y` is never used
[INFO] [stdout]    --> src/geometry.rs:688:8
[INFO] [stdout]     |
[INFO] [stdout] 688 | pub fn flip_y(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x` is never used
[INFO] [stdout]    --> src/geometry.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 694 | pub fn flip_x(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:700:8
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub fn flip_y_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:706:8
[INFO] [stdout]     |
[INFO] [stdout] 706 | pub fn flip_x_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_y` is never used
[INFO] [stdout]    --> src/geometry.rs:712:8
[INFO] [stdout]     |
[INFO] [stdout] 712 | pub fn just_y(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_x` is never used
[INFO] [stdout]    --> src/geometry.rs:718:8
[INFO] [stdout]     |
[INFO] [stdout] 718 | pub fn just_x(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_z` is never used
[INFO] [stdout]    --> src/geometry.rs:724:8
[INFO] [stdout]     |
[INFO] [stdout] 724 | pub fn just_z(v: impl Into<f32>) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:730:8
[INFO] [stdout]     |
[INFO] [stdout] 730 | pub fn lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:738:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | pub fn clamp_lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:746:8
[INFO] [stdout]     |
[INFO] [stdout] 746 | pub fn lerp_angles(a: f32, b: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:752:8
[INFO] [stdout]     |
[INFO] [stdout] 752 | pub fn inv_lerp<T>(zero: T, one: T, val: T) -> f32
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signorm` is never used
[INFO] [stdout]    --> src/geometry.rs:764:8
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub fn signorm(x: f32, k: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smootherstep` is never used
[INFO] [stdout]    --> src/geometry.rs:780:8
[INFO] [stdout]     |
[INFO] [stdout] 780 | pub fn smootherstep(edge0: f32, edge1: f32, x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellcurve` is never used
[INFO] [stdout]    --> src/geometry.rs:787:8
[INFO] [stdout]     |
[INFO] [stdout] 787 | pub fn bellcurve(x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian` is never used
[INFO] [stdout]    --> src/geometry.rs:793:8
[INFO] [stdout]     |
[INFO] [stdout] 793 | pub fn gaussian(x: f32, stdev: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range` is never used
[INFO] [stdout]    --> src/geometry.rs:800:8
[INFO] [stdout]     |
[INFO] [stdout] 800 | pub fn is_in_range<T>(p: T, mn: T, mx: T) -> bool
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:808:8
[INFO] [stdout]     |
[INFO] [stdout] 808 | pub fn is_in_range_vec2(p: Vec2, mn: Vec2, mx: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:814:8
[INFO] [stdout]     |
[INFO] [stdout] 814 | pub fn intersect_point_circle(p: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_ring` is never used
[INFO] [stdout]    --> src/geometry.rs:821:8
[INFO] [stdout]     |
[INFO] [stdout] 821 | pub fn intersect_point_ring(p: Vec2, c: Vec2, min_r: f32, max_r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:829:8
[INFO] [stdout]     |
[INFO] [stdout] 829 | pub fn intersect_circle_circle(p: Vec2, pr: f32, c: Vec2, cr: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle_points` is never used
[INFO] [stdout]    --> src/geometry.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout] 834 | pub fn intersect_circle_circle_points(p: Vec2, pr: f32, c: Vec2, cr: f32) -> Vec<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | pub fn intersect_segment_segment(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment_point` is never used
[INFO] [stdout]    --> src/geometry.rs:914:8
[INFO] [stdout]     |
[INFO] [stdout] 914 | pub fn intersect_segment_segment_point(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> Option<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_point` is never used
[INFO] [stdout]    --> src/geometry.rs:948:8
[INFO] [stdout]     |
[INFO] [stdout] 948 | pub fn intersect_poly_point(points: &[Vec2], point: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:970:8
[INFO] [stdout]     |
[INFO] [stdout] 970 | pub fn intersect_poly_circle(points: &[Vec2], center: Vec2, radius: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:992:8
[INFO] [stdout]     |
[INFO] [stdout] 992 | pub fn intersect_segment_circle(a: Vec2, b: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:998:8
[INFO] [stdout]     |
[INFO] [stdout] 998 | pub fn closest_point_on_segment(a: Vec2, b: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_ray` is never used
[INFO] [stdout]     --> src/geometry.rs:1019:8
[INFO] [stdout]      |
[INFO] [stdout] 1019 | pub fn closest_point_on_ray(a: Vec2, dir: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle` is never used
[INFO] [stdout]     --> src/geometry.rs:1035:8
[INFO] [stdout]      |
[INFO] [stdout] 1035 | pub fn intersect_ray_circle(e: Vec2, d: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle_points` is never used
[INFO] [stdout]     --> src/geometry.rs:1041:8
[INFO] [stdout]      |
[INFO] [stdout] 1041 | pub fn intersect_ray_circle_points(e: Vec2, d: Vec2, c: Vec2, r: f32) -> Vec<Vec2> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_segment` is never used
[INFO] [stdout]     --> src/geometry.rs:1084:8
[INFO] [stdout]      |
[INFO] [stdout] 1084 | pub fn intersect_ray_segment(ray_pt: Vec2, ray_dir: Vec2, sa: Vec2, sb: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_rectangle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1101:8
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub fn intersect_rectangle_rectangle(a: Vec2, ar: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1108:8
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub fn intersect_circle_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1130:8
[INFO] [stdout]      |
[INFO] [stdout] 1130 | pub fn intersect_point_rectangle(p: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle_corners` is never used
[INFO] [stdout]     --> src/geometry.rs:1137:8
[INFO] [stdout]      |
[INFO] [stdout] 1137 | pub fn intersect_point_rectangle_corners(p: Vec2, a: Vec2, b: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contained_circle_in_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1145:8
[INFO] [stdout]      |
[INFO] [stdout] 1145 | pub fn contained_circle_in_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AABBox` is never constructed
[INFO] [stdout]     --> src/geometry.rs:1151:12
[INFO] [stdout]      |
[INFO] [stdout] 1151 | pub struct AABBox {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/geometry.rs:1157:12
[INFO] [stdout]      |
[INFO] [stdout] 1156 | impl AABBox {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] 1157 |     pub fn new(min: Vec2, max: Vec2) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1161 |     pub fn largest() -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     pub fn get_radius(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     pub fn get_center(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1176 |     pub fn get_b_radius(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1180 |     pub fn empty(&self) -> bool {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1184 |     pub fn get_area(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1189 |     pub fn rotated(&self, angle: f32) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     pub fn translated(&self, vec: Vec2) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |     pub fn merged(&self, other: &AABBox) -> Self {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1212 |     pub fn start(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1220 |     pub fn reset(&mut self) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1225 |     pub fn insert_point(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |     pub fn insert_circle(&mut self, pt: Vec2, rad: f32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1237 |     pub fn insert_rect(&mut self, pt: Vec2, rad: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1243 |     pub fn insert_rect_corners(&mut self, p0: Vec2, p1: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1249 |     pub fn insert_poly(&mut self, pts: &[Vec2]) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1261 |     pub fn insert_aabbox(&mut self, bb: &AABBox) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1267 |     pub fn intersect_point(&self, pt: Vec2) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1271 |     pub fn intersect_circle(&self, pt: Vec2, r: f32) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient` is never used
[INFO] [stdout]     --> src/geometry.rs:1278:8
[INFO] [stdout]      |
[INFO] [stdout] 1278 | pub fn orient(p1: Vec2, p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient2` is never used
[INFO] [stdout]     --> src/geometry.rs:1284:8
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub fn orient2(p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `moment_for_poly` is never used
[INFO] [stdout]     --> src/geometry.rs:1305:8
[INFO] [stdout]      |
[INFO] [stdout] 1305 | pub fn moment_for_poly(mass: f32, verts: &[Vec2], offset: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_apothem` is never used
[INFO] [stdout]     --> src/geometry.rs:1329:8
[INFO] [stdout]      |
[INFO] [stdout] 1329 | pub fn regpoly_apothem(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_circumradius` is never used
[INFO] [stdout]     --> src/geometry.rs:1335:8
[INFO] [stdout]      |
[INFO] [stdout] 1335 | pub fn regpoly_circumradius(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_radius_from_side` is never used
[INFO] [stdout]     --> src/geometry.rs:1341:8
[INFO] [stdout]      |
[INFO] [stdout] 1341 | pub fn regpoly_radius_from_side(n: i32, s: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_area` is never used
[INFO] [stdout]     --> src/geometry.rs:1347:8
[INFO] [stdout]      |
[INFO] [stdout] 1347 | pub fn regpoly_area(n: i32, r: f32, r1: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_perimeter` is never used
[INFO] [stdout]     --> src/geometry.rs:1354:8
[INFO] [stdout]      |
[INFO] [stdout] 1354 | pub fn regpoly_perimeter(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_project` is never used
[INFO] [stdout]  --> src/project_generator.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn generate_project(project_name: &str) -> Result<(), io::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_shapes_lua` is never used
[INFO] [stdout]   --> src/project_generator.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn create_shapes_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_blocks_lua` is never used
[INFO] [stdout]    --> src/project_generator.rs:107:4
[INFO] [stdout]     |
[INFO] [stdout] 107 | fn create_blocks_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_factions_lua` is never used
[INFO] [stdout]    --> src/project_generator.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn create_factions_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_regions_lua` is never used
[INFO] [stdout]    --> src/project_generator.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn create_regions_lua(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sample_ship` is never used
[INFO] [stdout]    --> src/project_generator.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn create_sample_ship(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_readme` is never used
[INFO] [stdout]    --> src/project_generator.rs:207:4
[INFO] [stdout]     |
[INFO] [stdout] 207 | fn create_readme(project_dir: &Path, project_name: &str) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_cvars` is never used
[INFO] [stdout]    --> src/project_generator.rs:275:4
[INFO] [stdout]     |
[INFO] [stdout] 275 | fn create_cvars(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_preview_reminder` is never used
[INFO] [stdout]    --> src/project_generator.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn create_preview_reminder(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_shape_reference` is never used
[INFO] [stdout]    --> src/project_generator.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn create_shape_reference(project_dir: &Path) -> Result<(), io::Error> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_translations` is never used
[INFO] [stdout]   --> src/translations.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn reload_translations() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/shape_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[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: `ParseError`
[INFO] [stdout]   --> src/shape_editor.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::parser::{parse_shapes_content, ParseError};
[INFO] [stdout]    |                                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `node::Node` and `visitors::Visitor`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     visitors::Visitor,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     node::Node,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `ShroudComponent`, and `ThrusterProperties`
[INFO] [stdout]   --> src/parser.rs:11:68
[INFO] [stdout]    |
[INFO] [stdout] 11 | ...le, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `PortType`, `Port`, `Scale`, `Shape`, `ShroudComponent`, `ThrusterProperties`, and `Vertex`
[INFO] [stdout]  --> src/serializer.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...pesFile, Shape, Scale, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]   |             ^^^^^  ^^^^^  ^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/shape_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[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: `ParseError`
[INFO] [stdout]   --> src/shape_editor.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::parser::{parse_shapes_content, ParseError};
[INFO] [stdout]    |                                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `node::Node` and `visitors::Visitor`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     visitors::Visitor,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     node::Node,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `ShroudComponent`, and `ThrusterProperties`
[INFO] [stdout]   --> src/parser.rs:11:68
[INFO] [stdout]    |
[INFO] [stdout] 11 | ...le, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CannonProperties`, `FragmentProperties`, `PortType`, `Port`, `Scale`, `Shape`, `ShroudComponent`, `ThrusterProperties`, and `Vertex`
[INFO] [stdout]  --> src/serializer.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...pesFile, Shape, Scale, Vertex, Port, PortType, ShroudComponent, CannonProperties, ThrusterProperties, FragmentProperties};
[INFO] [stdout]   |             ^^^^^  ^^^^^  ^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_port` is never used
[INFO] [stdout]  --> src/visual.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn draw_port(painter: &Painter, pos: Pos2, port_type: &PortType, selected: bool) {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `port_color` is never used
[INFO] [stdout]   --> src/visual.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn port_color(port_type: &PortType) -> Color32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frame_style` is never used
[INFO] [stdout]    --> src/visual.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn custom_frame_style() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_frame` is never used
[INFO] [stdout]    --> src/visual.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn component_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popup_frame` is never used
[INFO] [stdout]    --> src/visual.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn popup_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_slot_frame` is never used
[INFO] [stdout]    --> src/visual.rs:464:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | pub fn ship_slot_frame(selected: bool) -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_list_item` is never used
[INFO] [stdout]    --> src/visual.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | pub fn ship_list_item(ui: &mut Ui, name: &str, p_value: i32, selected: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resource_indicator` is never used
[INFO] [stdout]    --> src/visual.rs:535:8
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub fn resource_indicator(ui: &mut egui::Ui, label: &str, current: i32, max: i32, color: Color32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_bar` is never used
[INFO] [stdout]    --> src/visual.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 | pub fn status_bar(ui: &mut egui::Ui, current: f32, max: f32, color: Color32) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construction_slot` is never used
[INFO] [stdout]    --> src/visual.rs:586:8
[INFO] [stdout]     |
[INFO] [stdout] 586 | pub fn construction_slot(ui: &mut Ui, slot_number: i32, empty: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_separator` is never used
[INFO] [stdout]    --> src/visual.rs:640:8
[INFO] [stdout]     |
[INFO] [stdout] 640 | pub fn ui_separator(ui: &mut Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_tooltip` is never used
[INFO] [stdout]    --> src/visual.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | pub fn show_tooltip(ui: &egui::Ui, response: &Response, text: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string` is never used
[INFO] [stdout]   --> src/data_structures.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl PortType {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_string(s: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_lua` is never used
[INFO] [stdout]    --> src/data_structures.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Shape {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn to_lua(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dragging`, `last_mouse_pos`, `resources`, and `points` are never read
[INFO] [stdout]   --> src/shape_editor.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ShapeEditor {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 32 |     pub last_mouse_pos: Pos2,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub resources: i32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub points: i32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_lua_shapes_legacy` is never used
[INFO] [stdout]    --> src/shape_editor.rs:524:8
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl ShapeEditor {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 524 |     fn parse_lua_shapes_legacy(&self, content: &str) -> Result<Vec<AppShape>, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAU` is never used
[INFO] [stdout]   --> src/geometry.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const TAU: f32 = PI * 2.0;
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GOLDEN_RATIO` is never used
[INFO] [stdout]   --> src/geometry.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const GOLDEN_RATIO: f32 = 1.61803398875;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec3` is never used
[INFO] [stdout]   --> src/geometry.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type Vec3 = glam::Vec3;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec4` is never used
[INFO] [stdout]   --> src/geometry.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Vec4 = glam::Vec4;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type DVec2 = glam::DVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type DVec3 = glam::DVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type DVec4 = glam::DVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type IVec2 = glam::IVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub type IVec3 = glam::IVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type IVec4 = glam::IVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F2` is never used
[INFO] [stdout]   --> src/geometry.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type F2 = Vec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F3` is never used
[INFO] [stdout]   --> src/geometry.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type F3 = Vec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F4` is never used
[INFO] [stdout]   --> src/geometry.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub type F4 = Vec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D2` is never used
[INFO] [stdout]   --> src/geometry.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type D2 = DVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D3` is never used
[INFO] [stdout]   --> src/geometry.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type D3 = DVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D4` is never used
[INFO] [stdout]   --> src/geometry.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type D4 = DVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I2` is never used
[INFO] [stdout]   --> src/geometry.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type I2 = IVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I3` is never used
[INFO] [stdout]   --> src/geometry.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type I3 = IVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I4` is never used
[INFO] [stdout]   --> src/geometry.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub type I4 = IVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trit` is never constructed
[INFO] [stdout]   --> src/geometry.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Trit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_int`, and `from_bool` are never used
[INFO] [stdout]   --> src/geometry.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Trit {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_int(v: i32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn from_bool(v: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error` is never used
[INFO] [stdout]    --> src/geometry.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn fpu_error(x: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn fpu_error_vec2(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn fpu_error_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_min` is never used
[INFO] [stdout]    --> src/geometry.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn vec2_min(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_max` is never used
[INFO] [stdout]    --> src/geometry.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn vec2_max(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn round_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn round_to_f64(a: f64, v: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_dvec2` is never used
[INFO] [stdout]    --> src/geometry.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn round_dvec2(a: DVec2, v: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up` is never used
[INFO] [stdout]    --> src/geometry.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn round_up(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_down` is never used
[INFO] [stdout]    --> src/geometry.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn round_down(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up_power2` is never used
[INFO] [stdout]    --> src/geometry.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn round_up_power2(v: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_to` is never used
[INFO] [stdout]    --> src/geometry.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn ceil_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_to` is never used
[INFO] [stdout]    --> src/geometry.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn floor_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn ceil_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn floor_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_int` is never used
[INFO] [stdout]    --> src/geometry.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn floor_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_int` is never used
[INFO] [stdout]    --> src/geometry.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub fn ceil_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_int` is never used
[INFO] [stdout]    --> src/geometry.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn round_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn floor_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn ceil_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn round_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector` is never used
[INFO] [stdout]    --> src/geometry.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub fn angle_to_vector(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle` is never used
[INFO] [stdout]    --> src/geometry.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn vector_to_angle(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn angle_to_vector_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn vector_to_angle_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v` is never used
[INFO] [stdout]    --> src/geometry.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn a2v(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a` is never used
[INFO] [stdout]    --> src/geometry.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn v2a(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub fn a2v_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub fn v2a_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn dot_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared` is never used
[INFO] [stdout]    --> src/geometry.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn squared<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign` is never used
[INFO] [stdout]    --> src/geometry.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub fn sign<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn sign_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn sign_vec3(v: Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec4` is never used
[INFO] [stdout]    --> src/geometry.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub fn sign_vec4(v: Vec4) -> Vec4 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_int` is never used
[INFO] [stdout]    --> src/geometry.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn sign_int<T>(val: T, threshold: T) -> i8
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate90` is never used
[INFO] [stdout]    --> src/geometry.rs:368:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub fn rotate90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_n90` is never used
[INFO] [stdout]    --> src/geometry.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub fn rotate_n90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_int` is never used
[INFO] [stdout]    --> src/geometry.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn distance_int(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_y` is never used
[INFO] [stdout]    --> src/geometry.rs:386:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub fn to_golden_ratio_y(y: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_x` is never used
[INFO] [stdout]    --> src/geometry.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn to_golden_ratio_x(x: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]    --> src/geometry.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub fn clamp<T>(v: T, mn: T, mx: T) -> T
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 412 | pub fn clamp_vec2(v: Vec2, mn: Vec2, mx: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_length` is never used
[INFO] [stdout]    --> src/geometry.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub fn clamp_length(v: Vec2, mn: f32, mx: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_mag` is never used
[INFO] [stdout]    --> src/geometry.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 | pub fn clamp_mag(v: f32, mn: f32, mx: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn max_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn min_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:459:8
[INFO] [stdout]     |
[INFO] [stdout] 459 | pub fn near_zero(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:465:8
[INFO] [stdout]     |
[INFO] [stdout] 465 | pub fn near_zero_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub fn near_zero_f32(v: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo` is never used
[INFO] [stdout]    --> src/geometry.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn modulo(x: i32, y: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:496:8
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub fn modulo_f32(x: f32, y: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:520:8
[INFO] [stdout]     |
[INFO] [stdout] 520 | pub fn modulo_vec2(val: Vec2, div: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2_scalar` is never used
[INFO] [stdout]    --> src/geometry.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub fn modulo_vec2_scalar(val: Vec2, div: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:532:8
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub fn min_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:538:8
[INFO] [stdout]     |
[INFO] [stdout] 538 | pub fn max_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:544:8
[INFO] [stdout]     |
[INFO] [stdout] 544 | pub fn min_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:550:8
[INFO] [stdout]     |
[INFO] [stdout] 550 | pub fn max_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:556:8
[INFO] [stdout]     |
[INFO] [stdout] 556 | pub fn distance_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_safe` is never used
[INFO] [stdout]    --> src/geometry.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn normalize_safe(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_or_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:573:8
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub fn normalize_or_zero(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:583:8
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub fn pow_vec2(v: Vec2, e: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub fn pow_vec3(v: Vec3, e: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length` is never used
[INFO] [stdout]    --> src/geometry.rs:595:8
[INFO] [stdout]     |
[INFO] [stdout] 595 | pub fn max_length(v: Vec2, max: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_length` is never used
[INFO] [stdout]    --> src/geometry.rs:606:8
[INFO] [stdout]     |
[INFO] [stdout] 606 | pub fn min_length(v: Vec2, min: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:617:8
[INFO] [stdout]     |
[INFO] [stdout] 617 | pub fn length_sqr(a: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:623:8
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub fn distance_sqr(a: Vec2, b: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub fn length_sqr_vec3(a: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:635:8
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub fn distance_sqr_vec3(a: Vec3, b: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_degrees` is never used
[INFO] [stdout]    --> src/geometry.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn to_degrees(radians: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_radians` is never used
[INFO] [stdout]    --> src/geometry.rs:647:8
[INFO] [stdout]     |
[INFO] [stdout] 647 | pub fn to_radians(degrees: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate` is never used
[INFO] [stdout]    --> src/geometry.rs:653:8
[INFO] [stdout]     |
[INFO] [stdout] 653 | pub fn rotate(v: Vec2, a: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec` is never used
[INFO] [stdout]    --> src/geometry.rs:664:8
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub fn rotate_vec(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec_clockwise` is never used
[INFO] [stdout]    --> src/geometry.rs:673:8
[INFO] [stdout]     |
[INFO] [stdout] 673 | pub fn rotate_vec_clockwise(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_xy` is never used
[INFO] [stdout]    --> src/geometry.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 682 | pub fn swap_xy(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y` is never used
[INFO] [stdout]    --> src/geometry.rs:688:8
[INFO] [stdout]     |
[INFO] [stdout] 688 | pub fn flip_y(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x` is never used
[INFO] [stdout]    --> src/geometry.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 694 | pub fn flip_x(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:700:8
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub fn flip_y_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:706:8
[INFO] [stdout]     |
[INFO] [stdout] 706 | pub fn flip_x_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_y` is never used
[INFO] [stdout]    --> src/geometry.rs:712:8
[INFO] [stdout]     |
[INFO] [stdout] 712 | pub fn just_y(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_x` is never used
[INFO] [stdout]    --> src/geometry.rs:718:8
[INFO] [stdout]     |
[INFO] [stdout] 718 | pub fn just_x(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_z` is never used
[INFO] [stdout]    --> src/geometry.rs:724:8
[INFO] [stdout]     |
[INFO] [stdout] 724 | pub fn just_z(v: impl Into<f32>) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:730:8
[INFO] [stdout]     |
[INFO] [stdout] 730 | pub fn lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:738:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | pub fn clamp_lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:746:8
[INFO] [stdout]     |
[INFO] [stdout] 746 | pub fn lerp_angles(a: f32, b: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:752:8
[INFO] [stdout]     |
[INFO] [stdout] 752 | pub fn inv_lerp<T>(zero: T, one: T, val: T) -> f32
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signorm` is never used
[INFO] [stdout]    --> src/geometry.rs:764:8
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub fn signorm(x: f32, k: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smootherstep` is never used
[INFO] [stdout]    --> src/geometry.rs:780:8
[INFO] [stdout]     |
[INFO] [stdout] 780 | pub fn smootherstep(edge0: f32, edge1: f32, x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellcurve` is never used
[INFO] [stdout]    --> src/geometry.rs:787:8
[INFO] [stdout]     |
[INFO] [stdout] 787 | pub fn bellcurve(x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian` is never used
[INFO] [stdout]    --> src/geometry.rs:793:8
[INFO] [stdout]     |
[INFO] [stdout] 793 | pub fn gaussian(x: f32, stdev: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range` is never used
[INFO] [stdout]    --> src/geometry.rs:800:8
[INFO] [stdout]     |
[INFO] [stdout] 800 | pub fn is_in_range<T>(p: T, mn: T, mx: T) -> bool
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:808:8
[INFO] [stdout]     |
[INFO] [stdout] 808 | pub fn is_in_range_vec2(p: Vec2, mn: Vec2, mx: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:814:8
[INFO] [stdout]     |
[INFO] [stdout] 814 | pub fn intersect_point_circle(p: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_ring` is never used
[INFO] [stdout]    --> src/geometry.rs:821:8
[INFO] [stdout]     |
[INFO] [stdout] 821 | pub fn intersect_point_ring(p: Vec2, c: Vec2, min_r: f32, max_r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:829:8
[INFO] [stdout]     |
[INFO] [stdout] 829 | pub fn intersect_circle_circle(p: Vec2, pr: f32, c: Vec2, cr: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle_points` is never used
[INFO] [stdout]    --> src/geometry.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout] 834 | pub fn intersect_circle_circle_points(p: Vec2, pr: f32, c: Vec2, cr: f32) -> Vec<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | pub fn intersect_segment_segment(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment_point` is never used
[INFO] [stdout]    --> src/geometry.rs:914:8
[INFO] [stdout]     |
[INFO] [stdout] 914 | pub fn intersect_segment_segment_point(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> Option<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_point` is never used
[INFO] [stdout]    --> src/geometry.rs:948:8
[INFO] [stdout]     |
[INFO] [stdout] 948 | pub fn intersect_poly_point(points: &[Vec2], point: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:970:8
[INFO] [stdout]     |
[INFO] [stdout] 970 | pub fn intersect_poly_circle(points: &[Vec2], center: Vec2, radius: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:992:8
[INFO] [stdout]     |
[INFO] [stdout] 992 | pub fn intersect_segment_circle(a: Vec2, b: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_port` is never used
[INFO] [stdout]  --> src/visual.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn draw_port(painter: &Painter, pos: Pos2, port_type: &PortType, selected: bool) {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:998:8
[INFO] [stdout]     |
[INFO] [stdout] 998 | pub fn closest_point_on_segment(a: Vec2, b: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_ray` is never used
[INFO] [stdout]     --> src/geometry.rs:1019:8
[INFO] [stdout]      |
[INFO] [stdout] 1019 | pub fn closest_point_on_ray(a: Vec2, dir: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `port_color` is never used
[INFO] [stdout]   --> src/visual.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn port_color(port_type: &PortType) -> Color32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_frame_style` is never used
[INFO] [stdout]    --> src/visual.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn custom_frame_style() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_frame` is never used
[INFO] [stdout]    --> src/visual.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn component_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popup_frame` is never used
[INFO] [stdout]    --> src/visual.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn popup_frame() -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle` is never used
[INFO] [stdout]     --> src/geometry.rs:1035:8
[INFO] [stdout]      |
[INFO] [stdout] 1035 | pub fn intersect_ray_circle(e: Vec2, d: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle_points` is never used
[INFO] [stdout]     --> src/geometry.rs:1041:8
[INFO] [stdout]      |
[INFO] [stdout] 1041 | pub fn intersect_ray_circle_points(e: Vec2, d: Vec2, c: Vec2, r: f32) -> Vec<Vec2> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_segment` is never used
[INFO] [stdout]     --> src/geometry.rs:1084:8
[INFO] [stdout]      |
[INFO] [stdout] 1084 | pub fn intersect_ray_segment(ray_pt: Vec2, ray_dir: Vec2, sa: Vec2, sb: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_rectangle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1101:8
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub fn intersect_rectangle_rectangle(a: Vec2, ar: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_slot_frame` is never used
[INFO] [stdout]    --> src/visual.rs:464:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | pub fn ship_slot_frame(selected: bool) -> egui::Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1108:8
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub fn intersect_circle_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ship_list_item` is never used
[INFO] [stdout]    --> src/visual.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | pub fn ship_list_item(ui: &mut Ui, name: &str, p_value: i32, selected: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resource_indicator` is never used
[INFO] [stdout]    --> src/visual.rs:535:8
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub fn resource_indicator(ui: &mut egui::Ui, label: &str, current: i32, max: i32, color: Color32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_bar` is never used
[INFO] [stdout]    --> src/visual.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 546 | pub fn status_bar(ui: &mut egui::Ui, current: f32, max: f32, color: Color32) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construction_slot` is never used
[INFO] [stdout]    --> src/visual.rs:586:8
[INFO] [stdout]     |
[INFO] [stdout] 586 | pub fn construction_slot(ui: &mut Ui, slot_number: i32, empty: bool) -> Response {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_separator` is never used
[INFO] [stdout]    --> src/visual.rs:640:8
[INFO] [stdout]     |
[INFO] [stdout] 640 | pub fn ui_separator(ui: &mut Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1130:8
[INFO] [stdout]      |
[INFO] [stdout] 1130 | pub fn intersect_point_rectangle(p: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle_corners` is never used
[INFO] [stdout]     --> src/geometry.rs:1137:8
[INFO] [stdout]      |
[INFO] [stdout] 1137 | pub fn intersect_point_rectangle_corners(p: Vec2, a: Vec2, b: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_tooltip` is never used
[INFO] [stdout]    --> src/visual.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | pub fn show_tooltip(ui: &egui::Ui, response: &Response, text: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contained_circle_in_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1145:8
[INFO] [stdout]      |
[INFO] [stdout] 1145 | pub fn contained_circle_in_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AABBox` is never constructed
[INFO] [stdout]     --> src/geometry.rs:1151:12
[INFO] [stdout]      |
[INFO] [stdout] 1151 | pub struct AABBox {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string` is never used
[INFO] [stdout]   --> src/data_structures.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl PortType {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_string(s: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_lua` is never used
[INFO] [stdout]    --> src/data_structures.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Shape {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn to_lua(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/geometry.rs:1157:12
[INFO] [stdout]      |
[INFO] [stdout] 1156 | impl AABBox {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] 1157 |     pub fn new(min: Vec2, max: Vec2) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1161 |     pub fn largest() -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     pub fn get_radius(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     pub fn get_center(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1176 |     pub fn get_b_radius(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1180 |     pub fn empty(&self) -> bool {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1184 |     pub fn get_area(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1189 |     pub fn rotated(&self, angle: f32) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     pub fn translated(&self, vec: Vec2) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |     pub fn merged(&self, other: &AABBox) -> Self {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1212 |     pub fn start(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1220 |     pub fn reset(&mut self) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1225 |     pub fn insert_point(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |     pub fn insert_circle(&mut self, pt: Vec2, rad: f32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1237 |     pub fn insert_rect(&mut self, pt: Vec2, rad: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1243 |     pub fn insert_rect_corners(&mut self, p0: Vec2, p1: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1249 |     pub fn insert_poly(&mut self, pts: &[Vec2]) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1261 |     pub fn insert_aabbox(&mut self, bb: &AABBox) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1267 |     pub fn intersect_point(&self, pt: Vec2) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1271 |     pub fn intersect_circle(&self, pt: Vec2, r: f32) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dragging`, `last_mouse_pos`, `resources`, and `points` are never read
[INFO] [stdout]   --> src/shape_editor.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ShapeEditor {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub dragging: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 32 |     pub last_mouse_pos: Pos2,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub resources: i32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub points: i32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_lua_shapes_legacy` is never used
[INFO] [stdout]    --> src/shape_editor.rs:524:8
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl ShapeEditor {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 524 |     fn parse_lua_shapes_legacy(&self, content: &str) -> Result<Vec<AppShape>, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAU` is never used
[INFO] [stdout]   --> src/geometry.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const TAU: f32 = PI * 2.0;
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GOLDEN_RATIO` is never used
[INFO] [stdout]   --> src/geometry.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const GOLDEN_RATIO: f32 = 1.61803398875;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec3` is never used
[INFO] [stdout]   --> src/geometry.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub type Vec3 = glam::Vec3;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Vec4` is never used
[INFO] [stdout]   --> src/geometry.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Vec4 = glam::Vec4;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type DVec2 = glam::DVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type DVec3 = glam::DVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type DVec4 = glam::DVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec2` is never used
[INFO] [stdout]   --> src/geometry.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type IVec2 = glam::IVec2;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec3` is never used
[INFO] [stdout]   --> src/geometry.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub type IVec3 = glam::IVec3;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IVec4` is never used
[INFO] [stdout]   --> src/geometry.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type IVec4 = glam::IVec4;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient` is never used
[INFO] [stdout]     --> src/geometry.rs:1278:8
[INFO] [stdout]      |
[INFO] [stdout] 1278 | pub fn orient(p1: Vec2, p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F2` is never used
[INFO] [stdout]   --> src/geometry.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type F2 = Vec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient2` is never used
[INFO] [stdout]     --> src/geometry.rs:1284:8
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub fn orient2(p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F3` is never used
[INFO] [stdout]   --> src/geometry.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type F3 = Vec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `moment_for_poly` is never used
[INFO] [stdout]     --> src/geometry.rs:1305:8
[INFO] [stdout]      |
[INFO] [stdout] 1305 | pub fn moment_for_poly(mass: f32, verts: &[Vec2], offset: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `F4` is never used
[INFO] [stdout]   --> src/geometry.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub type F4 = Vec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D2` is never used
[INFO] [stdout]   --> src/geometry.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type D2 = DVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_apothem` is never used
[INFO] [stdout]     --> src/geometry.rs:1329:8
[INFO] [stdout]      |
[INFO] [stdout] 1329 | pub fn regpoly_apothem(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D3` is never used
[INFO] [stdout]   --> src/geometry.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type D3 = DVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_circumradius` is never used
[INFO] [stdout]     --> src/geometry.rs:1335:8
[INFO] [stdout]      |
[INFO] [stdout] 1335 | pub fn regpoly_circumradius(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `D4` is never used
[INFO] [stdout]   --> src/geometry.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type D4 = DVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_radius_from_side` is never used
[INFO] [stdout]     --> src/geometry.rs:1341:8
[INFO] [stdout]      |
[INFO] [stdout] 1341 | pub fn regpoly_radius_from_side(n: i32, s: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I2` is never used
[INFO] [stdout]   --> src/geometry.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type I2 = IVec2;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_area` is never used
[INFO] [stdout]     --> src/geometry.rs:1347:8
[INFO] [stdout]      |
[INFO] [stdout] 1347 | pub fn regpoly_area(n: i32, r: f32, r1: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I3` is never used
[INFO] [stdout]   --> src/geometry.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type I3 = IVec3;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `I4` is never used
[INFO] [stdout]   --> src/geometry.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub type I4 = IVec4;
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_perimeter` is never used
[INFO] [stdout]     --> src/geometry.rs:1354:8
[INFO] [stdout]      |
[INFO] [stdout] 1354 | pub fn regpoly_perimeter(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Trit` is never constructed
[INFO] [stdout]   --> src/geometry.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Trit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParserErrorKind` is never used
[INFO] [stdout]   --> src/parser.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ParserErrorKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]   --> src/parser.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ParseError {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_int`, and `from_bool` are never used
[INFO] [stdout]   --> src/geometry.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Trit {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_int(v: i32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn from_bool(v: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_shapes_file` is never used
[INFO] [stdout]   --> src/parser.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn parse_shapes_file(path: &Path) -> Result<ShapesFile, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error` is never used
[INFO] [stdout]    --> src/geometry.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn fpu_error(x: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn fpu_error_vec2(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_translations` is never used
[INFO] [stdout]   --> src/translations.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn reload_translations() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fpu_error_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn fpu_error_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_min` is never used
[INFO] [stdout]    --> src/geometry.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn vec2_min(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec2_max` is never used
[INFO] [stdout]    --> src/geometry.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn vec2_max(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn round_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_to_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn round_to_f64(a: f64, v: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_dvec2` is never used
[INFO] [stdout]    --> src/geometry.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn round_dvec2(a: DVec2, v: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up` is never used
[INFO] [stdout]    --> src/geometry.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn round_up(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_down` is never used
[INFO] [stdout]    --> src/geometry.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn round_down(num: i32, mult: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_up_power2` is never used
[INFO] [stdout]    --> src/geometry.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn round_up_power2(v: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_to` is never used
[INFO] [stdout]    --> src/geometry.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn ceil_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_to` is never used
[INFO] [stdout]    --> src/geometry.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn floor_to(a: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn ceil_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn floor_vec2(a: Vec2, v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_int` is never used
[INFO] [stdout]    --> src/geometry.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn floor_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_int` is never used
[INFO] [stdout]    --> src/geometry.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub fn ceil_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_int` is never used
[INFO] [stdout]    --> src/geometry.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn round_int(f: f32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn floor_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn ceil_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_ivec2` is never used
[INFO] [stdout]    --> src/geometry.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn round_ivec2(f: Vec2) -> IVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector` is never used
[INFO] [stdout]    --> src/geometry.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub fn angle_to_vector(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle` is never used
[INFO] [stdout]    --> src/geometry.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn vector_to_angle(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `angle_to_vector_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn angle_to_vector_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vector_to_angle_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn vector_to_angle_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v` is never used
[INFO] [stdout]    --> src/geometry.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn a2v(angle: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a` is never used
[INFO] [stdout]    --> src/geometry.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn v2a(vec: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a2v_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub fn a2v_f64(angle: f64) -> DVec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `v2a_f64` is never used
[INFO] [stdout]    --> src/geometry.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub fn v2a_f64(vec: DVec2) -> f64 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dot_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn dot_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squared` is never used
[INFO] [stdout]    --> src/geometry.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn squared<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign` is never used
[INFO] [stdout]    --> src/geometry.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub fn sign<T>(val: T) -> T 
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn sign_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn sign_vec3(v: Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_vec4` is never used
[INFO] [stdout]    --> src/geometry.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub fn sign_vec4(v: Vec4) -> Vec4 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_int` is never used
[INFO] [stdout]    --> src/geometry.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn sign_int<T>(val: T, threshold: T) -> i8
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate90` is never used
[INFO] [stdout]    --> src/geometry.rs:368:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub fn rotate90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_n90` is never used
[INFO] [stdout]    --> src/geometry.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub fn rotate_n90(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_int` is never used
[INFO] [stdout]    --> src/geometry.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn distance_int(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_y` is never used
[INFO] [stdout]    --> src/geometry.rs:386:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub fn to_golden_ratio_y(y: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_golden_ratio_x` is never used
[INFO] [stdout]    --> src/geometry.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn to_golden_ratio_x(x: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]    --> src/geometry.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub fn clamp<T>(v: T, mn: T, mx: T) -> T
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 412 | pub fn clamp_vec2(v: Vec2, mn: Vec2, mx: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_length` is never used
[INFO] [stdout]    --> src/geometry.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub fn clamp_length(v: Vec2, mn: f32, mx: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_mag` is never used
[INFO] [stdout]    --> src/geometry.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 | pub fn clamp_mag(v: f32, mn: f32, mx: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn max_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_dim` is never used
[INFO] [stdout]    --> src/geometry.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn min_dim(v: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:459:8
[INFO] [stdout]     |
[INFO] [stdout] 459 | pub fn near_zero(v: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:465:8
[INFO] [stdout]     |
[INFO] [stdout] 465 | pub fn near_zero_vec3(v: Vec3) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_zero_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub fn near_zero_f32(v: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo` is never used
[INFO] [stdout]    --> src/geometry.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn modulo(x: i32, y: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_f32` is never used
[INFO] [stdout]    --> src/geometry.rs:496:8
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub fn modulo_f32(x: f32, y: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:520:8
[INFO] [stdout]     |
[INFO] [stdout] 520 | pub fn modulo_vec2(val: Vec2, div: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modulo_vec2_scalar` is never used
[INFO] [stdout]    --> src/geometry.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub fn modulo_vec2_scalar(val: Vec2, div: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:532:8
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub fn min_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs` is never used
[INFO] [stdout]    --> src/geometry.rs:538:8
[INFO] [stdout]     |
[INFO] [stdout] 538 | pub fn max_abs(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:544:8
[INFO] [stdout]     |
[INFO] [stdout] 544 | pub fn min_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_abs_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:550:8
[INFO] [stdout]     |
[INFO] [stdout] 550 | pub fn max_abs_vec2(a: Vec2, b: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:556:8
[INFO] [stdout]     |
[INFO] [stdout] 556 | pub fn distance_angles(a: f32, b: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_safe` is never used
[INFO] [stdout]    --> src/geometry.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn normalize_safe(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_or_zero` is never used
[INFO] [stdout]    --> src/geometry.rs:573:8
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub fn normalize_or_zero(a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:583:8
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub fn pow_vec2(v: Vec2, e: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub fn pow_vec3(v: Vec3, e: f32) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length` is never used
[INFO] [stdout]    --> src/geometry.rs:595:8
[INFO] [stdout]     |
[INFO] [stdout] 595 | pub fn max_length(v: Vec2, max: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_length` is never used
[INFO] [stdout]    --> src/geometry.rs:606:8
[INFO] [stdout]     |
[INFO] [stdout] 606 | pub fn min_length(v: Vec2, min: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:617:8
[INFO] [stdout]     |
[INFO] [stdout] 617 | pub fn length_sqr(a: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr` is never used
[INFO] [stdout]    --> src/geometry.rs:623:8
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub fn distance_sqr(a: Vec2, b: Vec2) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub fn length_sqr_vec3(a: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_sqr_vec3` is never used
[INFO] [stdout]    --> src/geometry.rs:635:8
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub fn distance_sqr_vec3(a: Vec3, b: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_degrees` is never used
[INFO] [stdout]    --> src/geometry.rs:641:8
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub fn to_degrees(radians: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_radians` is never used
[INFO] [stdout]    --> src/geometry.rs:647:8
[INFO] [stdout]     |
[INFO] [stdout] 647 | pub fn to_radians(degrees: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate` is never used
[INFO] [stdout]    --> src/geometry.rs:653:8
[INFO] [stdout]     |
[INFO] [stdout] 653 | pub fn rotate(v: Vec2, a: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec` is never used
[INFO] [stdout]    --> src/geometry.rs:664:8
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub fn rotate_vec(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_vec_clockwise` is never used
[INFO] [stdout]    --> src/geometry.rs:673:8
[INFO] [stdout]     |
[INFO] [stdout] 673 | pub fn rotate_vec_clockwise(v: Vec2, a: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_xy` is never used
[INFO] [stdout]    --> src/geometry.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 682 | pub fn swap_xy(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y` is never used
[INFO] [stdout]    --> src/geometry.rs:688:8
[INFO] [stdout]     |
[INFO] [stdout] 688 | pub fn flip_y(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x` is never used
[INFO] [stdout]    --> src/geometry.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 694 | pub fn flip_x(v: f32) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_y_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:700:8
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub fn flip_y_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_x_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:706:8
[INFO] [stdout]     |
[INFO] [stdout] 706 | pub fn flip_x_vec2(v: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_y` is never used
[INFO] [stdout]    --> src/geometry.rs:712:8
[INFO] [stdout]     |
[INFO] [stdout] 712 | pub fn just_y(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_x` is never used
[INFO] [stdout]    --> src/geometry.rs:718:8
[INFO] [stdout]     |
[INFO] [stdout] 718 | pub fn just_x(v: impl Into<f32>) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `just_z` is never used
[INFO] [stdout]    --> src/geometry.rs:724:8
[INFO] [stdout]     |
[INFO] [stdout] 724 | pub fn just_z(v: impl Into<f32>) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:730:8
[INFO] [stdout]     |
[INFO] [stdout] 730 | pub fn lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:738:8
[INFO] [stdout]     |
[INFO] [stdout] 738 | pub fn clamp_lerp<T>(from: T, to: T, v: f32) -> T
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lerp_angles` is never used
[INFO] [stdout]    --> src/geometry.rs:746:8
[INFO] [stdout]     |
[INFO] [stdout] 746 | pub fn lerp_angles(a: f32, b: f32, v: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv_lerp` is never used
[INFO] [stdout]    --> src/geometry.rs:752:8
[INFO] [stdout]     |
[INFO] [stdout] 752 | pub fn inv_lerp<T>(zero: T, one: T, val: T) -> f32
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signorm` is never used
[INFO] [stdout]    --> src/geometry.rs:764:8
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub fn signorm(x: f32, k: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smootherstep` is never used
[INFO] [stdout]    --> src/geometry.rs:780:8
[INFO] [stdout]     |
[INFO] [stdout] 780 | pub fn smootherstep(edge0: f32, edge1: f32, x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellcurve` is never used
[INFO] [stdout]    --> src/geometry.rs:787:8
[INFO] [stdout]     |
[INFO] [stdout] 787 | pub fn bellcurve(x: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian` is never used
[INFO] [stdout]    --> src/geometry.rs:793:8
[INFO] [stdout]     |
[INFO] [stdout] 793 | pub fn gaussian(x: f32, stdev: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range` is never used
[INFO] [stdout]    --> src/geometry.rs:800:8
[INFO] [stdout]     |
[INFO] [stdout] 800 | pub fn is_in_range<T>(p: T, mn: T, mx: T) -> bool
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_range_vec2` is never used
[INFO] [stdout]    --> src/geometry.rs:808:8
[INFO] [stdout]     |
[INFO] [stdout] 808 | pub fn is_in_range_vec2(p: Vec2, mn: Vec2, mx: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:814:8
[INFO] [stdout]     |
[INFO] [stdout] 814 | pub fn intersect_point_circle(p: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_ring` is never used
[INFO] [stdout]    --> src/geometry.rs:821:8
[INFO] [stdout]     |
[INFO] [stdout] 821 | pub fn intersect_point_ring(p: Vec2, c: Vec2, min_r: f32, max_r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:829:8
[INFO] [stdout]     |
[INFO] [stdout] 829 | pub fn intersect_circle_circle(p: Vec2, pr: f32, c: Vec2, cr: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_circle_points` is never used
[INFO] [stdout]    --> src/geometry.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout] 834 | pub fn intersect_circle_circle_points(p: Vec2, pr: f32, c: Vec2, cr: f32) -> Vec<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | pub fn intersect_segment_segment(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_segment_point` is never used
[INFO] [stdout]    --> src/geometry.rs:914:8
[INFO] [stdout]     |
[INFO] [stdout] 914 | pub fn intersect_segment_segment_point(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2) -> Option<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_point` is never used
[INFO] [stdout]    --> src/geometry.rs:948:8
[INFO] [stdout]     |
[INFO] [stdout] 948 | pub fn intersect_poly_point(points: &[Vec2], point: Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_poly_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:970:8
[INFO] [stdout]     |
[INFO] [stdout] 970 | pub fn intersect_poly_circle(points: &[Vec2], center: Vec2, radius: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_segment_circle` is never used
[INFO] [stdout]    --> src/geometry.rs:992:8
[INFO] [stdout]     |
[INFO] [stdout] 992 | pub fn intersect_segment_circle(a: Vec2, b: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_segment` is never used
[INFO] [stdout]    --> src/geometry.rs:998:8
[INFO] [stdout]     |
[INFO] [stdout] 998 | pub fn closest_point_on_segment(a: Vec2, b: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_point_on_ray` is never used
[INFO] [stdout]     --> src/geometry.rs:1019:8
[INFO] [stdout]      |
[INFO] [stdout] 1019 | pub fn closest_point_on_ray(a: Vec2, dir: Vec2, p: Vec2) -> Vec2 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle` is never used
[INFO] [stdout]     --> src/geometry.rs:1035:8
[INFO] [stdout]      |
[INFO] [stdout] 1035 | pub fn intersect_ray_circle(e: Vec2, d: Vec2, c: Vec2, r: f32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_circle_points` is never used
[INFO] [stdout]     --> src/geometry.rs:1041:8
[INFO] [stdout]      |
[INFO] [stdout] 1041 | pub fn intersect_ray_circle_points(e: Vec2, d: Vec2, c: Vec2, r: f32) -> Vec<Vec2> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_ray_segment` is never used
[INFO] [stdout]     --> src/geometry.rs:1084:8
[INFO] [stdout]      |
[INFO] [stdout] 1084 | pub fn intersect_ray_segment(ray_pt: Vec2, ray_dir: Vec2, sa: Vec2, sb: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_rectangle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1101:8
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub fn intersect_rectangle_rectangle(a: Vec2, ar: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_circle_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1108:8
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub fn intersect_circle_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1130:8
[INFO] [stdout]      |
[INFO] [stdout] 1130 | pub fn intersect_point_rectangle(p: Vec2, b: Vec2, br: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect_point_rectangle_corners` is never used
[INFO] [stdout]     --> src/geometry.rs:1137:8
[INFO] [stdout]      |
[INFO] [stdout] 1137 | pub fn intersect_point_rectangle_corners(p: Vec2, a: Vec2, b: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contained_circle_in_rectangle` is never used
[INFO] [stdout]     --> src/geometry.rs:1145:8
[INFO] [stdout]      |
[INFO] [stdout] 1145 | pub fn contained_circle_in_rectangle(circle: Vec2, circle_r: f32, rect_pos: Vec2, rect_half_size: Vec2) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AABBox` is never constructed
[INFO] [stdout]     --> src/geometry.rs:1151:12
[INFO] [stdout]      |
[INFO] [stdout] 1151 | pub struct AABBox {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/geometry.rs:1157:12
[INFO] [stdout]      |
[INFO] [stdout] 1156 | impl AABBox {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout] 1157 |     pub fn new(min: Vec2, max: Vec2) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1161 |     pub fn largest() -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1168 |     pub fn get_radius(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     pub fn get_center(&self) -> Vec2 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1176 |     pub fn get_b_radius(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1180 |     pub fn empty(&self) -> bool {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1184 |     pub fn get_area(&self) -> f32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1189 |     pub fn rotated(&self, angle: f32) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     pub fn translated(&self, vec: Vec2) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |     pub fn merged(&self, other: &AABBox) -> Self {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1212 |     pub fn start(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1220 |     pub fn reset(&mut self) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1225 |     pub fn insert_point(&mut self, pt: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |     pub fn insert_circle(&mut self, pt: Vec2, rad: f32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1237 |     pub fn insert_rect(&mut self, pt: Vec2, rad: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1243 |     pub fn insert_rect_corners(&mut self, p0: Vec2, p1: Vec2) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1249 |     pub fn insert_poly(&mut self, pts: &[Vec2]) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1261 |     pub fn insert_aabbox(&mut self, bb: &AABBox) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1267 |     pub fn intersect_point(&self, pt: Vec2) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1271 |     pub fn intersect_circle(&self, pt: Vec2, r: f32) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient` is never used
[INFO] [stdout]     --> src/geometry.rs:1278:8
[INFO] [stdout]      |
[INFO] [stdout] 1278 | pub fn orient(p1: Vec2, p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orient2` is never used
[INFO] [stdout]     --> src/geometry.rs:1284:8
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub fn orient2(p2: Vec2, p3: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `moment_for_poly` is never used
[INFO] [stdout]     --> src/geometry.rs:1305:8
[INFO] [stdout]      |
[INFO] [stdout] 1305 | pub fn moment_for_poly(mass: f32, verts: &[Vec2], offset: Vec2) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_apothem` is never used
[INFO] [stdout]     --> src/geometry.rs:1329:8
[INFO] [stdout]      |
[INFO] [stdout] 1329 | pub fn regpoly_apothem(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_circumradius` is never used
[INFO] [stdout]     --> src/geometry.rs:1335:8
[INFO] [stdout]      |
[INFO] [stdout] 1335 | pub fn regpoly_circumradius(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_radius_from_side` is never used
[INFO] [stdout]     --> src/geometry.rs:1341:8
[INFO] [stdout]      |
[INFO] [stdout] 1341 | pub fn regpoly_radius_from_side(n: i32, s: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_area` is never used
[INFO] [stdout]     --> src/geometry.rs:1347:8
[INFO] [stdout]      |
[INFO] [stdout] 1347 | pub fn regpoly_area(n: i32, r: f32, r1: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regpoly_perimeter` is never used
[INFO] [stdout]     --> src/geometry.rs:1354:8
[INFO] [stdout]      |
[INFO] [stdout] 1354 | pub fn regpoly_perimeter(n: i32, r: f32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParserErrorKind` is never used
[INFO] [stdout]   --> src/parser.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ParserErrorKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]   --> src/parser.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ParseError {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_shapes_file` is never used
[INFO] [stdout]   --> src/parser.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn parse_shapes_file(path: &Path) -> Result<ShapesFile, ParseError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_translations` is never used
[INFO] [stdout]   --> src/translations.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn reload_translations() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "49f23342b860e91b32f55b8902c667b8de2e56fc79286662d99e7b113dc89d99", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "49f23342b860e91b32f55b8902c667b8de2e56fc79286662d99e7b113dc89d99", kill_on_drop: false }`
[INFO] [stdout] 49f23342b860e91b32f55b8902c667b8de2e56fc79286662d99e7b113dc89d99
