[INFO] cloning repository https://github.com/harrisonthorne/blockery-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/harrisonthorne/blockery-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharrisonthorne%2Fblockery-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharrisonthorne%2Fblockery-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 014b8b378d971aee23b1889861c7667c2efd0b76
[INFO] testing harrisonthorne/blockery-rs against 1.54.0 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharrisonthorne%2Fblockery-rs" "/workspace/builds/worker-7/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/harrisonthorne/blockery-rs on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/harrisonthorne/blockery-rs
[INFO] finished tweaking git repo https://github.com/harrisonthorne/blockery-rs
[INFO] tweaked toml for git repo https://github.com/harrisonthorne/blockery-rs written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate git repo https://github.com/harrisonthorne/blockery-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded notify v5.0.0-pre.11
[INFO] [stderr]   Downloaded kqueue-sys v1.0.2
[INFO] [stderr]   Downloaded kqueue v1.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b8c66bbc04d0d867f49fc6972e78bb45d0c349e909078e5b53fbee2bede2453e
[INFO] running `Command { std: "docker" "start" "-a" "b8c66bbc04d0d867f49fc6972e78bb45d0c349e909078e5b53fbee2bede2453e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b8c66bbc04d0d867f49fc6972e78bb45d0c349e909078e5b53fbee2bede2453e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8c66bbc04d0d867f49fc6972e78bb45d0c349e909078e5b53fbee2bede2453e", kill_on_drop: false }`
[INFO] [stdout] b8c66bbc04d0d867f49fc6972e78bb45d0c349e909078e5b53fbee2bede2453e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ea81560a2d866080c08e793a68709fabadc2527201ce94876a98c8451051ee2a
[INFO] running `Command { std: "docker" "start" "-a" "ea81560a2d866080c08e793a68709fabadc2527201ce94876a98c8451051ee2a", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.65
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.7
[INFO] [stderr]    Compiling cache-padded v1.1.1
[INFO] [stderr]    Compiling erased-serde v0.3.16
[INFO] [stderr]    Compiling futures-core v0.3.8
[INFO] [stderr]    Compiling Inflector v0.11.4
[INFO] [stderr]    Compiling futures-io v0.3.8
[INFO] [stderr]    Compiling fastrand v1.5.0
[INFO] [stderr]    Compiling waker-fn v1.1.0
[INFO] [stderr]    Compiling bytemuck v1.7.2
[INFO] [stderr]    Compiling parking v2.0.0
[INFO] [stderr]    Compiling async-task v4.0.3
[INFO] [stderr]    Compiling fixedbitset v0.4.0
[INFO] [stderr]    Compiling regex-syntax v0.6.25
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling itoa v0.4.6
[INFO] [stderr]    Compiling ansi_term v0.12.1
[INFO] [stderr]    Compiling anyhow v1.0.26
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.69
[INFO] [stderr]    Compiling bumpalo v3.2.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.69
[INFO] [stderr]    Compiling tracing-core v0.1.18
[INFO] [stderr]    Compiling instant v0.1.10
[INFO] [stderr]    Compiling ahash v0.7.4
[INFO] [stderr]    Compiling lock_api v0.4.4
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling sharded-slab v0.1.3
[INFO] [stderr]    Compiling thread_local v1.1.3
[INFO] [stderr]    Compiling c2-chacha v0.2.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling approx v0.3.2
[INFO] [stderr]    Compiling concurrent-queue v1.2.2
[INFO] [stderr]    Compiling async-channel v1.6.1
[INFO] [stderr]    Compiling tracing-log v0.1.2
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling futures-lite v1.12.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling crossbeam-channel v0.5.1
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling filetime v0.2.14
[INFO] [stderr]    Compiling mio v0.7.13
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling inotify v0.9.3
[INFO] [stderr]    Compiling async-executor v1.4.1
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling bevy_tasks v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.2.1
[INFO] [stderr]    Compiling notify v5.0.0-pre.11
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling regex v1.5.4
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling rand v0.8.4
[INFO] [stderr]    Compiling cgmath v0.17.0
[INFO] [stderr]    Compiling matchers v0.0.1
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.69
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.69
[INFO] [stderr]    Compiling serde_derive v1.0.117
[INFO] [stderr]    Compiling tracing-attributes v0.1.15
[INFO] [stderr]    Compiling thiserror-impl v1.0.26
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.69
[INFO] [stderr]    Compiling thiserror v1.0.26
[INFO] [stderr]    Compiling tracing v0.1.26
[INFO] [stderr]    Compiling serde v1.0.117
[INFO] [stderr]    Compiling toml v0.5.7
[INFO] [stderr]    Compiling smallvec v1.6.1
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling glam v0.15.2
[INFO] [stderr]    Compiling tracing-serde v0.1.2
[INFO] [stderr]    Compiling serde_json v1.0.59
[INFO] [stderr]    Compiling ron v0.6.4
[INFO] [stderr]    Compiling parking_lot_core v0.8.3
[INFO] [stderr]    Compiling parking_lot v0.11.1
[INFO] [stderr]    Compiling cargo-manifest v0.2.4
[INFO] [stderr]    Compiling tracing-subscriber v0.2.19
[INFO] [stderr]    Compiling bevy_macro_utils v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_derive v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_reflect_derive v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_ecs_macros v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_utils v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_reflect v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_ecs v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_math v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_app v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_core v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_log v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_transform v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_input v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_window v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_diagnostic v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_asset v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_scene v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy_internal v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling bevy v0.5.0 (https://github.com/bevyengine/bevy?rev=90586a4c461cde86b8a0e08f0770894e7cf30862#90586a4c)
[INFO] [stderr]    Compiling blockery-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/block.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use web_sys::WebGlRenderingContext;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/button.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/button.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use web_sys::ImageBitmap;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]   --> src/button.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use web_sys::WebGlRenderingContext;
[INFO] [stdout]    |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/data.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use web_sys::WebGlRenderingContext;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/dialogs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use web_sys::{CanvasRenderingContext2d, WebGlRenderingContext};
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/ui.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use web_sys::CanvasRenderingContext2d;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/board.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use web_sys::WebGlRenderingContext;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `web_sys`
[INFO] [stdout]  --> src/cube.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use web_sys::WebGlRenderingContext;
[INFO] [stdout]   |     ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `web_sys`
[INFO] [stdout]   --> src/block.rs:61:73
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn block_logic(&self, delta: f32, row: i32, col: i32, performance: &web_sys::Performance) {
[INFO] [stdout]    |                                                                         ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `web_sys`
[INFO] [stdout]    --> src/block.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn is_gone(&self, window: &web_sys::Window, global_y_offset: f32) {
[INFO] [stdout]     |                                ^^^^^^^ use of undeclared crate or module `web_sys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/board.rs:297:49
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn get_width() {
[INFO] [stdout]     |        --------- this function doesn't have a `self` parameter
[INFO] [stdout] 297 |         COLUMNS * (ui::BLOCK_WIDTH + SPACING) - self.SPACING
[INFO] [stdout]     |                                                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn get_width(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DEFAULT_BUTTON` in this scope
[INFO] [stdout]   --> src/dialogs.rs:62:30
[INFO] [stdout]    |
[INFO] [stdout] 62 |             positive_button: DEFAULT_BUTTON,
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BUTTON_POSITIVE` in this scope
[INFO] [stdout]   --> src/dialogs.rs:76:33
[INFO] [stdout]    |
[INFO] [stdout] 76 |         DialogButton::new(self, BUTTON_POSITIVE, "Dismiss", |dialog| {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DEFAULT_BUTTON` in this scope
[INFO] [stdout]    --> src/dialogs.rs:111:44
[INFO] [stdout]     |
[INFO] [stdout] 111 |                     self.positive_button = DEFAULT_BUTTON;
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:129:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn get_height() {
[INFO] [stdout]     |        ---------- this function doesn't have a `self` parameter
[INFO] [stdout] 128 |         ui::PADDING
[INFO] [stdout] 129 |             + self.title_wrap.len() * DIALOG_TITLE_TEXT_HEIGHT
[INFO] [stdout]     |               ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn get_height(&self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:131:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn get_height() {
[INFO] [stdout]     |        ---------- this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 131 |             + self.message_wrap.len() * SANS_TEXT_HEIGHT * DIALOG_MESSAGE_SPACING
[INFO] [stdout]     |               ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn get_height(&self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/dialogs.rs:131:41
[INFO] [stdout]     |
[INFO] [stdout] 131 |             + self.message_wrap.len() * SANS_TEXT_HEIGHT * DIALOG_MESSAGE_SPACING
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIALOG_BUTTON_HEIGHT` in module `ui`
[INFO] [stdout]    --> src/dialogs.rs:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |             + ui::DIALOG_BUTTON_HEIGHT
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^ not found in `ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]    --> src/dialogs.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         VISIBLE_WIDTH * 7 / 8
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dialogs` in this scope
[INFO] [stdout]    --> src/dialogs.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         dialogs.splice(dialogs.index_of(self), 1);
[INFO] [stdout]     |         ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dialogs` in this scope
[INFO] [stdout]    --> src/dialogs.rs:142:24
[INFO] [stdout]     |
[INFO] [stdout] 142 |         dialogs.splice(dialogs.index_of(self), 1);
[INFO] [stdout]     |                        ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/dialogs.rs:145:68
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] 146 |         if self.enter_interpol < 1 {
[INFO] [stdout]     |            ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] 146 |         if self.enter_interpol < 1 {
[INFO] [stdout] 147 |             self.enter_interpol += delta / DIALOG_ANIMATE_DURATION;
[INFO] [stdout]     |             ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:148:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 148 |             if self.enter_interpol > 1 {
[INFO] [stdout]     |                ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 149 |                 self.enter_interpol = 1
[INFO] [stdout]     |                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 153 |         let ctx = self.ctx;
[INFO] [stdout]     |                   ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/dialogs.rs:156:30
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let p = to_browser_h(PADDING);
[INFO] [stdout]     |                              ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 158 |         let w = self.width;
[INFO] [stdout]     |                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `quint_ease_out` in this scope
[INFO] [stdout]    --> src/dialogs.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let h = quint_ease_out(self.enter_interpol) * self.height;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/utils.rs:141:1
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn cubic_ease_out(t: f32) -> f32 {
[INFO] [stdout]     | ------------------------------------ similarly named function `cubic_ease_out` defined here
[INFO] [stdout]     |
[INFO] [stdout] help: a function with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let h = cubic_ease_out(self.enter_interpol) * self.height;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::quint_ease_out;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 159 |         let h = quint_ease_out(self.enter_interpol) * self.height;
[INFO] [stdout]     |                                ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:159:55
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 159 |         let h = quint_ease_out(self.enter_interpol) * self.height;
[INFO] [stdout]     |                                                       ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]    --> src/dialogs.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let x = VISIBLE_WIDTH / 2 - w / 2;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/dialogs.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let y = VISIBLE_HEIGHT / 2 - h / 2;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_w` in this scope
[INFO] [stdout]    --> src/dialogs.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 |         w = to_browser_w(w);
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/utils.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn to_browser_h(gl_h: f32, visible_height: f32) -> f32 {
[INFO] [stdout]     | ---------------------------------------------------------- similarly named function `to_browser_h` defined here
[INFO] [stdout]     |
[INFO] [stdout] help: a function with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 164 |         w = to_browser_h(w);
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_w;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]    --> src/dialogs.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         x = to_browser_x(x);
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/utils.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn to_browser_h(gl_h: f32, visible_height: f32) -> f32 {
[INFO] [stdout]     | ---------------------------------------------------------- similarly named function `to_browser_h` defined here
[INFO] [stdout]     |
[INFO] [stdout] help: a function with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 165 |         x = to_browser_h(x);
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 170 |         ctx.fill_style = self.background_color;
[INFO] [stdout]     |                          ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `apply_shadow` in this scope
[INFO] [stdout]    --> src/dialogs.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |         apply_shadow(ctx);
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `remove_shadow` in this scope
[INFO] [stdout]    --> src/dialogs.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |         remove_shadow(ctx);
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::remove_shadow;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:185:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 185 |         ctx.fill_style = self.text_color;
[INFO] [stdout]     |                          ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 193 |         if self.title_wrap {
[INFO] [stdout]     |            ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:194:24
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 194 |             ctx.font = self.TITLE_FONT;
[INFO] [stdout]     |                        ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:195:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 195 |             for i in 0..self.title_wrap.length {
[INFO] [stdout]     |                         ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:196:31
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 196 |                 ctx.fill_text(self.title_wrap[i], x + p, draw_y);
[INFO] [stdout]     |                               ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 204 |         if self.message_wrap {
[INFO] [stdout]     |            ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:206:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 206 |             for i in 0..self.message_wrap.length {
[INFO] [stdout]     |                         ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:207:31
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 207 |                 ctx.fill_text(self.message_wrap[i], x + p, draw_y);
[INFO] [stdout]     |                               ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/dialogs.rs:208:40
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 draw_y += to_browser_h(SANS_TEXT_HEIGHT * DIALOG_MESSAGE_SPACING);
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:214:40
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 214 |         let button_x = x + w - p / 2 - self.positive_button.width;
[INFO] [stdout]     |                                        ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 216 |         self.positive_button.render(
[INFO] [stdout]     |         ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 219 |             self.positive_button_background,
[INFO] [stdout]     |             ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 220 |             self.positive_button_text_color,
[INFO] [stdout]     |             ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 222 |         if self.negative_button {
[INFO] [stdout]     |            ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 223 |             button_x -= self.negative_button.width;
[INFO] [stdout]     |                         ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 224 |             self.negative_button.render(
[INFO] [stdout]     |             ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 227 |                 self.negative_button_background,
[INFO] [stdout]     |                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:228:17
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 228 |                 self.negative_button_text_color,
[INFO] [stdout]     |                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:231:12
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 231 |         if self.neutral_button {
[INFO] [stdout]     |            ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 233 |             self.neutral_button.render(
[INFO] [stdout]     |             ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 236 |                 self.neutral_button_background,
[INFO] [stdout]     |                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/dialogs.rs:237:17
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |        ------ this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 237 |                 self.neutral_button_text_color,
[INFO] [stdout]     |                 ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 145 |     fn render(&self, delta: f32, gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `F` in this scope
[INFO] [stdout]    --> src/dialogs.rs:263:77
[INFO] [stdout]     |
[INFO] [stdout] 263 |       pub fn new(dialog: &Dialog, ty: DialogButtonType, text: String, action: F) -> Self {
[INFO] [stdout]     |                                                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: there is an enum variant `bevy::input::keyboard::KeyCode::F`; try using the variant's enum
[INFO] [stdout]     |
[INFO] [stdout] 263 |     pub fn new(dialog: &Dialog, ty: DialogButtonType, text: String, action: bevy::input::keyboard::KeyCode) -> Self {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: a trait with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 263 |     pub fn new(dialog: &Dialog, ty: DialogButtonType, text: String, action: Fn) -> Self {
[INFO] [stdout]     |                                                                             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_gl_x` in this scope
[INFO] [stdout]    --> src/dialogs.rs:274:15
[INFO] [stdout]     |
[INFO] [stdout] 274 |         mx >= to_gl_x(self.x)
[INFO] [stdout]     |               ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_gl_x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_gl_x` in this scope
[INFO] [stdout]    --> src/dialogs.rs:275:22
[INFO] [stdout]     |
[INFO] [stdout] 275 |             && mx <= to_gl_x(self.x + self.width)
[INFO] [stdout]     |                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_gl_x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_gl_y` in this scope
[INFO] [stdout]    --> src/dialogs.rs:276:22
[INFO] [stdout]     |
[INFO] [stdout] 276 |             && my >= to_gl_y(self.y)
[INFO] [stdout]     |                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_gl_y;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_gl_y` in this scope
[INFO] [stdout]    --> src/dialogs.rs:277:22
[INFO] [stdout]     |
[INFO] [stdout] 277 |             && my <= to_gl_y(self.y) + DIALOG_BUTTON_HEIGHT
[INFO] [stdout]     |                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_gl_y;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `DialogButton`
[INFO] [stdout]    --> src/dialogs.rs:293:20
[INFO] [stdout]     |
[INFO] [stdout] 293 |         ctx.font = DialogButton.FONT;
[INFO] [stdout]     |                    ^^^^^^^^^^^^-----
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: use the path separator to refer to an item: `DialogButton::FONT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_w` in this scope
[INFO] [stdout]    --> src/dialogs.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         to_browser_w(PADDING * 2) + ctx.measure_text(self.text.to_upper_case()).width
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/utils.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn to_browser_h(gl_h: f32, visible_height: f32) -> f32 {
[INFO] [stdout]     | ---------------------------------------------------------- similarly named function `to_browser_h` defined here
[INFO] [stdout]     |
[INFO] [stdout] help: a function with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 294 |         to_browser_h(PADDING * 2) + ctx.measure_text(self.text.to_upper_case()).width
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_w;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/dialogs.rs:294:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         to_browser_w(PADDING * 2) + ctx.measure_text(self.text.to_upper_case()).width
[INFO] [stdout]     |                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/dialogs.rs:355:23
[INFO] [stdout]     |
[INFO] [stdout] 355 |         program_info: ProgramInfo,
[INFO] [stdout]     |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]    --> src/dialogs.rs:359:32
[INFO] [stdout]     |
[INFO] [stdout] 359 |         ctx_2d.fill_rect(0, 0, window.inner_width, window.inner_height);
[INFO] [stdout]     |                                ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]    --> src/dialogs.rs:359:52
[INFO] [stdout]     |
[INFO] [stdout] 359 |         ctx_2d.fill_rect(0, 0, window.inner_width, window.inner_height);
[INFO] [stdout]     |                                                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dialogs` in this scope
[INFO] [stdout]    --> src/dialogs.rs:361:12
[INFO] [stdout]     |
[INFO] [stdout] 361 |         if dialogs[0] {
[INFO] [stdout]     |            ^^^^^^^ help: you might have meant to use the available field: `self.dialogs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dialogs` in this scope
[INFO] [stdout]    --> src/dialogs.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             dialogs[0].render(delta, gl, program_info);
[INFO] [stdout]     |             ^^^^^^^ help: you might have meant to use the available field: `self.dialogs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/dialogs.rs:380:80
[INFO] [stdout]     |
[INFO] [stdout] 380 |         self.title_wrap = get_wrapped_lines(self.ctx, self.title, self.width - PADDING * 2);
[INFO] [stdout]     |                                                                                ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/dialogs.rs:383:84
[INFO] [stdout]     |
[INFO] [stdout] 383 |         self.message_wrap = get_wrapped_lines(self.ctx, self.message, self.width - PADDING * 2);
[INFO] [stdout]     |                                                                                    ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `mouse_listeners` in this scope
[INFO] [stdout]    --> src/dialogs.rs:386:9
[INFO] [stdout]     |
[INFO] [stdout] 386 |         mouse_listeners.for_each(|listener| {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `NaN` in this scope
[INFO] [stdout]    --> src/dialogs.rs:388:40
[INFO] [stdout]     |
[INFO] [stdout] 388 |                 listener.on_mouse_move(NaN, NaN);
[INFO] [stdout]     |                                        ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `NaN` in this scope
[INFO] [stdout]    --> src/dialogs.rs:388:45
[INFO] [stdout]     |
[INFO] [stdout] 388 |                 listener.on_mouse_move(NaN, NaN);
[INFO] [stdout]     |                                             ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dialogs` in this scope
[INFO] [stdout]    --> src/dialogs.rs:391:9
[INFO] [stdout]     |
[INFO] [stdout] 391 |         dialogs.push(self);
[INFO] [stdout]     |         ^^^^^^^ help: you might have meant to use the available field: `self.dialogs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `ProgressButton`
[INFO] [stdout]    --> src/factories.rs:92:30
[INFO] [stdout]     |
[INFO] [stdout] 92  |               progress_button: ProgressButton(
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 93  | |                 get_status_bar_x(),
[INFO] [stdout] 94  | |                 0,
[INFO] [stdout] 95  | |                 get_status_bar_width(),
[INFO] [stdout] ...   |
[INFO] [stdout] 100 | |                 || self.empty(),
[INFO] [stdout] 101 | |             ),
[INFO] [stdout]     | |_____________^ help: use struct literal syntax instead: `ProgressButton { button: val, color_fill: val, color_empty: val, progress: val, action: val }`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/button.rs:306:1
[INFO] [stdout]     |
[INFO] [stdout] 306 | / pub struct ProgressButton<F> {
[INFO] [stdout] 307 | |     button: Button,
[INFO] [stdout] 308 | |     color_fill: f32,
[INFO] [stdout] 309 | |     color_empty: f32,
[INFO] [stdout] 310 | |     progress: f32,
[INFO] [stdout] 311 | |     action: F,
[INFO] [stdout] 312 | | }
[INFO] [stdout]     | |_- `ProgressButton` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]   --> src/factories.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 get_status_bar_x(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]   --> src/factories.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 get_status_bar_width(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `COLOR_GREEN` in this scope
[INFO] [stdout]   --> src/factories.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |                 COLOR_GREEN,
[INFO] [stdout]    |                 ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/factories.rs:100:20
[INFO] [stdout]     |
[INFO] [stdout] 59  |     pub fn new(
[INFO] [stdout]     |            --- this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 100 |                 || self.empty(),
[INFO] [stdout]     |                    ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 60  |         &self, factory_code: FactoryType,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `ImageButton`
[INFO] [stdout]    --> src/factories.rs:103:27
[INFO] [stdout]     |
[INFO] [stdout] 103 |               image_button: ImageButton(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 104 | |                 get_status_bar_x(),
[INFO] [stdout] 105 | |                 0,
[INFO] [stdout] 106 | |                 PURCHASE_BUTTON_SIZE,
[INFO] [stdout] ...   |
[INFO] [stdout] 110 | |                 || self.buy(),
[INFO] [stdout] 111 | |             ),
[INFO] [stdout]     | |_____________^ help: use struct literal syntax instead: `ImageButton { button: val, img: val }`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/button.rs:255:1
[INFO] [stdout]     |
[INFO] [stdout] 255 | / pub struct ImageButton<F> {
[INFO] [stdout] 256 | |     button: Button<F>,
[INFO] [stdout] 257 | |     img: ImageBitmap,
[INFO] [stdout] 258 | | }
[INFO] [stdout]     | |_- `ImageButton` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]    --> src/factories.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 get_status_bar_x(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]    --> src/factories.rs:110:20
[INFO] [stdout]     |
[INFO] [stdout] 59  |     pub fn new(
[INFO] [stdout]     |            --- this function doesn't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 110 |                 || self.buy(),
[INFO] [stdout]     |                    ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]     |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]     |
[INFO] [stdout] 60  |         &self, factory_code: FactoryType,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Data` in this scope
[INFO] [stdout]    --> src/factories.rs:129:48
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn empty_immediately(&mut self, data: &mut Data) {
[INFO] [stdout]     |                                                ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::data::Data;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Data` in this scope
[INFO] [stdout]    --> src/factories.rs:136:57
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn produce_blocks(&mut self, delta: f32, data: &mut Data) {
[INFO] [stdout]     |                                                         ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::data::Data;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/factories.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 Data.current_pollution += new_pollution;
[INFO] [stdout]     |                 ^^^^ help: a local variable with a similar name exists: `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Data` in this scope
[INFO] [stdout]    --> src/factories.rs:182:60
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn buy(&mut self, block_balance: &mut u128, data: &mut Data) {
[INFO] [stdout]     |                                                            ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::data::Data;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Firework`
[INFO] [stdout]    --> src/factories.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Firework::new(
[INFO] [stdout]     |         ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::fx::Firework;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_block_rate_multiplier` in this scope
[INFO] [stdout]    --> src/factories.rs:200:72
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self.base_production_rate * self.local_block_rate_multiplier * global_block_rate_multiplier
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_capacity_multiplier` in this scope
[INFO] [stdout]    --> src/factories.rs:207:15
[INFO] [stdout]     |
[INFO] [stdout] 207 |             * global_capacity_multiplier
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_pollution_multiplier` in this scope
[INFO] [stdout]    --> src/factories.rs:214:15
[INFO] [stdout]     |
[INFO] [stdout] 214 |             * global_pollution_multiplier
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_empty_rate_multiplier` in this scope
[INFO] [stdout]    --> src/factories.rs:218:47
[INFO] [stdout]     |
[INFO] [stdout] 218 |         self.amount_owned * BASE_EMPTY_RATE * global_empty_rate_multiplier
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_price_multiplier` in this scope
[INFO] [stdout]    --> src/factories.rs:225:15
[INFO] [stdout]     |
[INFO] [stdout] 225 |             * global_price_multiplier)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/factories.rs:231:56
[INFO] [stdout]     |
[INFO] [stdout] 231 |         PURCHASE_BUTTON_SIZE + STORAGE_BUTTON_HEIGHT + PADDING * 2
[INFO] [stdout]     |                                                        ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:235:54
[INFO] [stdout]     |
[INFO] [stdout] 235 |         (self.index / FACTORIES_PER_PAGE).floor() == current_factory_page
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/factories.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         gl: WebGlRenderingContext,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/factories.rs:243:23
[INFO] [stdout]     |
[INFO] [stdout] 243 |         program_info: ProgramInfo,
[INFO] [stdout]     |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/factories.rs:244:17
[INFO] [stdout]     |
[INFO] [stdout] 244 |         ctx_2d: WebGlRenderingContext,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories_unlocked` in this scope
[INFO] [stdout]    --> src/factories.rs:247:50
[INFO] [stdout]     |
[INFO] [stdout] 247 |         if !self.visible_on_page || self.index > factories_unlocked {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `factories_logic`
[INFO] [stdout] ...
[INFO] [stdout] 404 | fn factories_logic(delta: f32) {
[INFO] [stdout]     | ------------------------------ similarly named function `factories_logic` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories_unlocked` in this scope
[INFO] [stdout]    --> src/factories.rs:252:22
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let hidden = factories_unlocked == self.index;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `factories_logic`
[INFO] [stdout] ...
[INFO] [stdout] 404 | fn factories_logic(delta: f32) {
[INFO] [stdout]     | ------------------------------ similarly named function `factories_logic` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/factories.rs:259:17
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let p = PADDING;
[INFO] [stdout]     |                 ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]    --> src/factories.rs:261:33
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let status_bar_height = get_status_bar_height();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `Factory`
[INFO] [stdout]    --> src/factories.rs:263:16
[INFO] [stdout]     |
[INFO] [stdout] 263 |             - (Factory.info_card_height * FACTORIES_PER_PAGE - PADDING * 2) / 2
[INFO] [stdout]     |                ^^^^^^^-----------------
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: use the path separator to refer to an item: `Factory::info_card_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/factories.rs:263:64
[INFO] [stdout]     |
[INFO] [stdout] 263 |             - (Factory.info_card_height * FACTORIES_PER_PAGE - PADDING * 2) / 2
[INFO] [stdout]     |                                                                ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `Factory`
[INFO] [stdout]    --> src/factories.rs:264:49
[INFO] [stdout]     |
[INFO] [stdout] 264 |             + self.index % FACTORIES_PER_PAGE * Factory.info_card_height
[INFO] [stdout]     |                                                 ^^^^^^^-----------------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 help: use the path separator to refer to an item: `Factory::info_card_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/factories.rs:267:37
[INFO] [stdout]     |
[INFO] [stdout] 267 |         self.image_button.enabled = Data.current_blocks >= self.price && !hidden;
[INFO] [stdout]     |                                     ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/factories.rs:281:79
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let text_x = to_browser_x(self.image_button.x + self.image_button.w + PADDING);
[INFO] [stdout]     |                                                                               ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIALOG_TITLE_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:283:36
[INFO] [stdout]     |
[INFO] [stdout] 283 |         ctx_2d.font = to_browser_h(DIALOG_TITLE_TEXT_HEIGHT) + "px New Cicle Fina";
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::dialogs::DIALOG_TITLE_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_sans_font` in this scope
[INFO] [stdout]    --> src/factories.rs:295:23
[INFO] [stdout]     |
[INFO] [stdout] 295 |         ctx_2d.font = get_sans_font();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::dialogs::get_sans_font;
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::get_sans_font;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIALOG_TITLE_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:297:53
[INFO] [stdout]     |
[INFO] [stdout] 297 |         text_y = to_browser_y(self.image_button.y + DIALOG_TITLE_TEXT_HEIGHT * 1.15);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::dialogs::DIALOG_TITLE_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:308:43
[INFO] [stdout]     |
[INFO] [stdout] 308 |                     text_y + to_browser_h(SANS_TEXT_HEIGHT) * 1.15,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/factories.rs:343:34
[INFO] [stdout]     |
[INFO] [stdout] 343 |                     time_left = (Math.ceil(time_left * 10) / 10).to_fixed(1);
[INFO] [stdout]     |                                  ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/factories.rs:346:33
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     time_left = Math.ceil(time_left);
[INFO] [stdout]     |                                 ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:357:43
[INFO] [stdout]     |
[INFO] [stdout] 357 |                     text_y + to_browser_h(SANS_TEXT_HEIGHT) * 1.15,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/factories.rs:363:41
[INFO] [stdout]     |
[INFO] [stdout] 363 |             self.progress_button.text = Math.floor(self.blocks_held) + " / " + self.total_capacity;
[INFO] [stdout]     |                                         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/factories.rs:405:17
[INFO] [stdout]     |
[INFO] [stdout] 405 |     for prop in factories {
[INFO] [stdout]     |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/factories.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |         factories[prop].logic(delta);
[INFO] [stdout]     |         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:416:5
[INFO] [stdout]     |
[INFO] [stdout] 416 |     VISIBLE_HEIGHT - get_status_bar_height() * 1.5 - PADDING - PAGE_CHANGER_BUTTON_HEIGHT
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]    --> src/factories.rs:416:22
[INFO] [stdout]     |
[INFO] [stdout] 416 |     VISIBLE_HEIGHT - get_status_bar_height() * 1.5 - PADDING - PAGE_CHANGER_BUTTON_HEIGHT
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/factories.rs:416:54
[INFO] [stdout]     |
[INFO] [stdout] 416 |     VISIBLE_HEIGHT - get_status_bar_height() * 1.5 - PADDING - PAGE_CHANGER_BUTTON_HEIGHT
[INFO] [stdout]     |                                                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/factories.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 420 |     Math.floor(factories_unlocked / FACTORIES_PER_PAGE)
[INFO] [stdout]     |     ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories_unlocked` in this scope
[INFO] [stdout]    --> src/factories.rs:420:16
[INFO] [stdout]     |
[INFO] [stdout] 404 | fn factories_logic(delta: f32) {
[INFO] [stdout]     | ------------------------------ similarly named function `factories_logic` defined here
[INFO] [stdout] ...
[INFO] [stdout] 420 |     Math.floor(factories_unlocked / FACTORIES_PER_PAGE)
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `factories_logic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/factories.rs:425:9
[INFO] [stdout]     |
[INFO] [stdout] 425 |     gl: WebGlRenderingContext,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/factories.rs:426:19
[INFO] [stdout]     |
[INFO] [stdout] 426 |     program_info: ProgramInfo,
[INFO] [stdout]     |                   ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]    --> src/factories.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |     ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/factories.rs:430:17
[INFO] [stdout]     |
[INFO] [stdout] 430 |     for prop in factories {
[INFO] [stdout]     |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/factories.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |         factories[prop].render_options(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `previous_page_button` in this scope
[INFO] [stdout]    --> src/factories.rs:433:8
[INFO] [stdout]     |
[INFO] [stdout] 433 |     if previous_page_button {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `previous_page_button` in this scope
[INFO] [stdout]    --> src/factories.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |         previous_page_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `next_page_button` in this scope
[INFO] [stdout]    --> src/factories.rs:437:8
[INFO] [stdout]     |
[INFO] [stdout] 437 |     if next_page_button {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `init_page_buttons`
[INFO] [stdout] ...
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button, Button) {
[INFO] [stdout]     | ------------------------------------------ similarly named function `init_page_buttons` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `next_page_button` in this scope
[INFO] [stdout]    --> src/factories.rs:438:9
[INFO] [stdout]     |
[INFO] [stdout] 438 |         next_page_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `init_page_buttons`
[INFO] [stdout] ...
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button, Button) {
[INFO] [stdout]     | ------------------------------------------ similarly named function `init_page_buttons` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:441:32
[INFO] [stdout]     |
[INFO] [stdout] 441 |     ctx_2d.font = to_browser_h(SANS_TEXT_HEIGHT * 1.5) + "px New Cicle Fina";
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:446:10
[INFO] [stdout]     |
[INFO] [stdout] 446 |         (current_factory_page + 1) + " / " + (get_max_page() + 1),
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]    --> src/factories.rs:447:22
[INFO] [stdout]     |
[INFO] [stdout] 447 |         to_browser_x(VISIBLE_WIDTH / 2),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `next_page_button` in this scope
[INFO] [stdout]    --> src/factories.rs:448:52
[INFO] [stdout]     |
[INFO] [stdout] 448 |         to_browser_y(get_page_changer_button_y() + next_page_button.h / 2 + y_offset),
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `init_page_buttons`
[INFO] [stdout] ...
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button, Button) {
[INFO] [stdout]     | ------------------------------------------ similarly named function `init_page_buttons` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/factories.rs:455:9
[INFO] [stdout]     |
[INFO] [stdout] 455 |     gl: WebGlRenderingContext,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/factories.rs:456:19
[INFO] [stdout]     |
[INFO] [stdout] 456 |     program_info: ProgramInfo,
[INFO] [stdout]     |                   ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]    --> src/factories.rs:457:13
[INFO] [stdout]     |
[INFO] [stdout] 457 |     ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `cube_mesh` in this scope
[INFO] [stdout]    --> src/factories.rs:461:5
[INFO] [stdout]     |
[INFO] [stdout] 461 |     cube_mesh.set_color(BlockColor::Blue, gl, program_info);
[INFO] [stdout]     |     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]    --> src/factories.rs:462:13
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let h = get_status_bar_height();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]    --> src/factories.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let w = get_status_bar_width();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]    --> src/factories.rs:464:13
[INFO] [stdout]     |
[INFO] [stdout] 464 |     let x = get_status_bar_x();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/factories.rs:465:13
[INFO] [stdout]     |
[INFO] [stdout] 465 |     let y = VISIBLE_HEIGHT - h * 1.5 + y_offset;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `cube_mesh` in this scope
[INFO] [stdout]    --> src/factories.rs:466:5
[INFO] [stdout]     |
[INFO] [stdout] 466 |     cube_mesh.render(gl, x, y, 0, w, h, Board.BLOCK_WIDTH);
[INFO] [stdout]     |     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/factories.rs:466:41
[INFO] [stdout]     |
[INFO] [stdout] 466 |     cube_mesh.render(gl, x, y, 0, w, h, Board.BLOCK_WIDTH);
[INFO] [stdout]     |                                         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/factories.rs:476:46
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let blocks_text_x = to_browser_x(x + w - Board.FRAME_THICKNESS);
[INFO] [stdout]     |                                              ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/factories.rs:500:23
[INFO] [stdout]     |
[INFO] [stdout] 500 |     let amount_text = Data.current_blocks.floor();
[INFO] [stdout]     |                       ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/factories.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |     for prop in factories {
[INFO] [stdout]     |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/factories.rs:503:32
[INFO] [stdout]     |
[INFO] [stdout] 503 |         total_stored_blocks += factories[prop].blocks_held;
[INFO] [stdout]     |                                ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]    --> src/factories.rs:541:9
[INFO] [stdout]     |
[INFO] [stdout] 541 |         get_status_bar_x() + get_status_bar_width() - PAGE_CHANGER_BUTTON_HEIGHT,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]    --> src/factories.rs:541:30
[INFO] [stdout]     |
[INFO] [stdout] 541 |         get_status_bar_x() + get_status_bar_width() - PAGE_CHANGER_BUTTON_HEIGHT,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:548:16
[INFO] [stdout]     |
[INFO] [stdout] 548 |             if current_factory_page < get_max_page() {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:549:17
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 current_factory_page += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `check_page_buttons` in this scope
[INFO] [stdout]    --> src/factories.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |             check_page_buttons();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Button`
[INFO] [stdout]    --> src/factories.rs:557:32
[INFO] [stdout]     |
[INFO] [stdout] 557 |       let previous_page_button = Button(
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 558 | |         get_status_bar_x(),
[INFO] [stdout] 559 | |         get_page_changer_button_y(),
[INFO] [stdout] 560 | |         PAGE_CHANGER_BUTTON_HEIGHT,
[INFO] [stdout] ...   |
[INFO] [stdout] 569 | |         },
[INFO] [stdout] 570 | |     );
[INFO] [stdout]     | |_____^ help: use struct literal syntax instead: `Button { x: val, y: val, w: val, h: val, color: val, text: val, action: val, disabled_color: val, typeface: val, font_size: val, enabled: val, hovering: val, press_interpol: val, press_interpol_velocity: val, lift_interpol: val }`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/button.rs:40:1
[INFO] [stdout]     |
[INFO] [stdout] 40  | / pub struct Button<F: Fn()> {
[INFO] [stdout] 41  | |     x: f32,
[INFO] [stdout] 42  | |     y: f32,
[INFO] [stdout] 43  | |     w: f32,
[INFO] [stdout] ...   |
[INFO] [stdout] 57  | |     lift_interpol: f32,
[INFO] [stdout] 58  | | }
[INFO] [stdout]     | |_- `Button` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]    --> src/factories.rs:558:9
[INFO] [stdout]     |
[INFO] [stdout] 558 |         get_status_bar_x(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:565:16
[INFO] [stdout]     |
[INFO] [stdout] 565 |             if current_factory_page > 0 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:566:17
[INFO] [stdout]     |
[INFO] [stdout] 566 |                 current_factory_page -= 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `check_page_buttons` in this scope
[INFO] [stdout]    --> src/factories.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |             check_page_buttons();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:574:32
[INFO] [stdout]     |
[INFO] [stdout] 574 |     next_page_button.enabled = current_factory_page < get_max_page();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_factory_page` in this scope
[INFO] [stdout]    --> src/factories.rs:575:36
[INFO] [stdout]     |
[INFO] [stdout] 575 |     previous_page_button.enabled = current_factory_page > 0;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `firework_manager` in this scope
[INFO] [stdout]   --> src/fx.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         firework_manager.push(self);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]   --> src/fx.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(x: f32, y: f32) {
[INFO] [stdout]    |            --- this function doesn't have a `self` parameter
[INFO] [stdout] 29 |         let color = BlockColor::random_normal();
[INFO] [stdout] 30 |         firework_manager.push(self);
[INFO] [stdout]    |                               ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]    |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(&self, x: f32, y: f32) {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/fx.rs:37:42
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn render(&self, delta: f32, ctx_2d: CanvasRenderingContext2d) {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `quint_ease_out` in this scope
[INFO] [stdout]   --> src/fx.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let t = quint_ease_out(self.interpolation);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::quint_ease_out;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_h` in this scope
[INFO] [stdout]   --> src/fx.rs:49:17
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let s = to_browser_h((1 - t * t * t) * PARTICLE_SIZE);
[INFO] [stdout]    |                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_h;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `int_to_rgb_text` in this scope
[INFO] [stdout]   --> src/fx.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 |         ctx_2d.fill_style = int_to_rgb_text(self.color);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::int_to_rgb_text;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/fx.rs:56:29
[INFO] [stdout]    |
[INFO] [stdout] 56 |             let angle = 2 * Math.PI * i / NUM_FIREWORK_PARTICLES;
[INFO] [stdout]    |                             ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/fx.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |             let particle_x = self.x + Math.sin(angle) * d;
[INFO] [stdout]    |                                       ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/fx.rs:58:39
[INFO] [stdout]    |
[INFO] [stdout] 58 |             let particle_y = self.y + Math.cos(angle) * d;
[INFO] [stdout]    |                                       ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/fx.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 to_browser_x(particle_x - s / 2),
[INFO] [stdout]    |                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/fx.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 to_browser_y(particle_y - s / 2),
[INFO] [stdout]    |                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/fx.rs:69:47
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn render_special_effects(delta: f32, ctx_2d: CanvasRenderingContext2d) {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `firework_manager` in this scope
[INFO] [stdout]   --> src/fx.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     firework_manager.for_each(|firework| {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `firework_manager` in this scope
[INFO] [stdout]   --> src/fx.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             firework_manager.splice(firework_manager.index_of(firework), 1);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `firework_manager` in this scope
[INFO] [stdout]   --> src/fx.rs:74:37
[INFO] [stdout]    |
[INFO] [stdout] 74 |             firework_manager.splice(firework_manager.index_of(firework), 1);
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `factories_logic` in this scope
[INFO] [stdout]  --> src/game.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         factories_logic(delta);
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::factories::factories_logic;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]   --> src/game.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         Board.logic(delta);
[INFO] [stdout]    |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]   --> src/game.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         gl: WebGlRenderingContext,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]   --> src/game.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |         program_info: ProgramInfo,
[INFO] [stdout]    |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ProgramInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Matrices` in this scope
[INFO] [stdout]   --> src/game.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |         matrices: Matrices,
[INFO] [stdout]    |                   ^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::Matrices;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/game.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |         ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |         if y_interpol < 1 {
[INFO] [stdout]    |            ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             y_interpol += delta / y_offset_animate_duration;
[INFO] [stdout]    |             ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_offset_animate_duration` in this scope
[INFO] [stdout]   --> src/game.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 |             y_interpol += delta / y_offset_animate_duration;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |             if y_interpol > 1 {
[INFO] [stdout]    |                ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 y_interpol = 1;
[INFO] [stdout]    |                 ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset_` in this scope
[INFO] [stdout]   --> src/game.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |             global_yOffset_ = y_start + quint_ease_out(y_interpol) * (y_end - y_start);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_start` in this scope
[INFO] [stdout]   --> src/game.rs:25:31
[INFO] [stdout]    |
[INFO] [stdout] 25 |             global_yOffset_ = y_start + quint_ease_out(y_interpol) * (y_end - y_start);
[INFO] [stdout]    |                               ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `quint_ease_out` in this scope
[INFO] [stdout]   --> src/game.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |             global_yOffset_ = y_start + quint_ease_out(y_interpol) * (y_end - y_start);
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::quint_ease_out;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:25:56
[INFO] [stdout]    |
[INFO] [stdout] 25 |             global_yOffset_ = y_start + quint_ease_out(y_interpol) * (y_end - y_start);
[INFO] [stdout]    |                                                        ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_end` in this scope
[INFO] [stdout]   --> src/game.rs:25:71
[INFO] [stdout]    |
[INFO] [stdout] 25 |             global_yOffset_ = y_start + quint_ease_out(y_interpol) * (y_end - y_start);
[INFO] [stdout]    |                                                                       ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_start` in this scope
[INFO] [stdout]   --> src/game.rs:25:79
[INFO] [stdout]    |
[INFO] [stdout] 25 |             global_yOffset_ = y_start + quint_ease_out(y_interpol) * (y_end - y_start);
[INFO] [stdout]    |                                                                               ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 |         if y_interpol < 1 || current_stage == Stage.MAIN {
[INFO] [stdout]    |            ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_stage` in this scope
[INFO] [stdout]   --> src/game.rs:28:30
[INFO] [stdout]    |
[INFO] [stdout] 28 |         if y_interpol < 1 || current_stage == Stage.MAIN {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `Stage`
[INFO] [stdout]    --> src/game.rs:28:47
[INFO] [stdout]     |
[INFO] [stdout] 28  |         if y_interpol < 1 || current_stage == Stage.MAIN {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 | / enum Stage {
[INFO] [stdout] 285 | |     UPPER = 3,
[INFO] [stdout] 286 | |     MAIN = 2,
[INFO] [stdout] 287 | |     LOWER = 1,
[INFO] [stdout] 288 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 28  |         if y_interpol < 1 || current_stage == game::Stage::UPPER.MAIN {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 28  |         if y_interpol < 1 || current_stage == game::Stage::MAIN.MAIN {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 28  |         if y_interpol < 1 || current_stage == game::Stage::LOWER.MAIN {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_main_stage` in this scope
[INFO] [stdout]   --> src/game.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |             render_main_stage(delta, gl, program_info, ctx_2d, global_yOffset);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset` in this scope
[INFO] [stdout]   --> src/game.rs:29:64
[INFO] [stdout]    |
[INFO] [stdout] 29 |             render_main_stage(delta, gl, program_info, ctx_2d, global_yOffset);
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if y_interpol < 1 || current_stage == Stage.UPPER {
[INFO] [stdout]    |            ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_stage` in this scope
[INFO] [stdout]   --> src/game.rs:33:30
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if y_interpol < 1 || current_stage == Stage.UPPER {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `Stage`
[INFO] [stdout]    --> src/game.rs:33:47
[INFO] [stdout]     |
[INFO] [stdout] 33  |         if y_interpol < 1 || current_stage == Stage.UPPER {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 | / enum Stage {
[INFO] [stdout] 285 | |     UPPER = 3,
[INFO] [stdout] 286 | |     MAIN = 2,
[INFO] [stdout] 287 | |     LOWER = 1,
[INFO] [stdout] 288 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 33  |         if y_interpol < 1 || current_stage == game::Stage::UPPER.UPPER {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33  |         if y_interpol < 1 || current_stage == game::Stage::MAIN.UPPER {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33  |         if y_interpol < 1 || current_stage == game::Stage::LOWER.UPPER {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_upper_stage` in this scope
[INFO] [stdout]   --> src/game.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             render_upper_stage(
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_upper_stage_menu` in this scope
[INFO] [stdout]   --> src/game.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |                 current_upper_stage_menu,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset_` in this scope
[INFO] [stdout]   --> src/game.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 global_yOffset_ - VISIBLE_HEIGHT,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]   --> src/game.rs:40:35
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 global_yOffset_ - VISIBLE_HEIGHT,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]   --> src/game.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if y_interpol < 1 || current_stage == Stage.LOWER {
[INFO] [stdout]    |            ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_stage` in this scope
[INFO] [stdout]   --> src/game.rs:45:30
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if y_interpol < 1 || current_stage == Stage.LOWER {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `Stage`
[INFO] [stdout]    --> src/game.rs:45:47
[INFO] [stdout]     |
[INFO] [stdout] 45  |         if y_interpol < 1 || current_stage == Stage.LOWER {
[INFO] [stdout]     |                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 | / enum Stage {
[INFO] [stdout] 285 | |     UPPER = 3,
[INFO] [stdout] 286 | |     MAIN = 2,
[INFO] [stdout] 287 | |     LOWER = 1,
[INFO] [stdout] 288 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 45  |         if y_interpol < 1 || current_stage == game::Stage::UPPER.LOWER {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45  |         if y_interpol < 1 || current_stage == game::Stage::MAIN.LOWER {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45  |         if y_interpol < 1 || current_stage == game::Stage::LOWER.LOWER {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_lower_stage` in this scope
[INFO] [stdout]   --> src/game.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             render_lower_stage(
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_lower_stage_menu` in this scope
[INFO] [stdout]   --> src/game.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 current_lower_stage_menu,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset_` in this scope
[INFO] [stdout]   --> src/game.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 global_yOffset_ + VISIBLE_HEIGHT,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]   --> src/game.rs:52:35
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 global_yOffset_ + VISIBLE_HEIGHT,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]   --> src/game.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         gl: WebGlRenderingContext,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]   --> src/game.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |         program_info: ProgramInfo,
[INFO] [stdout]    |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ProgramInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/game.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |         ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]   --> src/game.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         Board.render(gl, program_info, y_offset);
[INFO] [stdout]    |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_scoreboard` in this scope
[INFO] [stdout]   --> src/game.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         render_scoreboard(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_status_bar` in this scope
[INFO] [stdout]   --> src/game.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         render_status_bar(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]   --> src/game.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         gl: WebGlRenderingContext,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]   --> src/game.rs:73:23
[INFO] [stdout]    |
[INFO] [stdout] 73 |         program_info: ProgramInfo,
[INFO] [stdout]    |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ProgramInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/game.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |         ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_h` in this scope
[INFO] [stdout]   --> src/game.rs:77:23
[INFO] [stdout]    |
[INFO] [stdout] 77 |         ctx_2d.font = to_browser_h(DIALOG_TITLE_TEXT_HEIGHT) + "px New Cicle Fina";
[INFO] [stdout]    |                       ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_h;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIALOG_TITLE_TEXT_HEIGHT` in this scope
[INFO] [stdout]   --> src/game.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         ctx_2d.font = to_browser_h(DIALOG_TITLE_TEXT_HEIGHT) + "px New Cicle Fina";
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::dialogs::DIALOG_TITLE_TEXT_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/game.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             to_browser_x(get_status_bar_x() + get_status_bar_width() / 2),
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]   --> src/game.rs:83:26
[INFO] [stdout]    |
[INFO] [stdout] 83 |             to_browser_x(get_status_bar_x() + get_status_bar_width() / 2),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]   --> src/game.rs:83:47
[INFO] [stdout]    |
[INFO] [stdout] 83 |             to_browser_x(get_status_bar_x() + get_status_bar_width() / 2),
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/game.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             to_browser_y(get_status_bar_height() / 2 + y_offset),
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]   --> src/game.rs:84:26
[INFO] [stdout]    |
[INFO] [stdout] 84 |             to_browser_y(get_status_bar_height() / 2 + y_offset),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_factory_menu` in this scope
[INFO] [stdout]   --> src/game.rs:87:37
[INFO] [stdout]    |
[INFO] [stdout] 87 |             StageMenu::FACTORIES => render_factory_menu(delta, gl, program_info, ctx_2d, y_offset),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::factories::render_factory_menu;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_stats` in this scope
[INFO] [stdout]   --> src/game.rs:89:33
[INFO] [stdout]    |
[INFO] [stdout] 89 |             StageMenu::STATS => render_stats(ctx_2d, y_offset),
[INFO] [stdout]    |                                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::stats::render_stats;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `upper_stage_back_button` in this scope
[INFO] [stdout]   --> src/game.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         upper_stage_back_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]   --> src/game.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         gl: WebGlRenderingContext,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]   --> src/game.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |         program_info: ProgramInfo,
[INFO] [stdout]    |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ProgramInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]    --> src/game.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |         ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `render_settings` in this scope
[INFO] [stdout]    --> src/game.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         render_settings(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::settings::render_settings;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `lower_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |         lower_stage_back_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/game.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         gl: WebGlRenderingContext,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/game.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |         program_info: ProgramInfo,
[INFO] [stdout]     |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]    --> src/game.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |         ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `cube_mesh` in this scope
[INFO] [stdout]    --> src/game.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         cube_mesh.set_color(BlockColor::Blue, gl, program_info);
[INFO] [stdout]     |         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let x = Board.board_center.x - Board.width / 2 - Board.GRID_PADDING - Board.FRAME_THICKNESS;
[INFO] [stdout]     |                 ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:123:40
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let x = Board.board_center.x - Board.width / 2 - Board.GRID_PADDING - Board.FRAME_THICKNESS;
[INFO] [stdout]     |                                        ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:123:58
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let x = Board.board_center.x - Board.width / 2 - Board.GRID_PADDING - Board.FRAME_THICKNESS;
[INFO] [stdout]     |                                                          ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:123:79
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let x = Board.board_center.x - Board.width / 2 - Board.GRID_PADDING - Board.FRAME_THICKNESS;
[INFO] [stdout]     |                                                                               ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             Board.board_center.y + Board.height / 2 + Board.GRID_PADDING + Board.FRAME_THICKNESS * 2;
[INFO] [stdout]     |             ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:125:36
[INFO] [stdout]     |
[INFO] [stdout] 125 |             Board.board_center.y + Board.height / 2 + Board.GRID_PADDING + Board.FRAME_THICKNESS * 2;
[INFO] [stdout]     |                                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:125:55
[INFO] [stdout]     |
[INFO] [stdout] 125 |             Board.board_center.y + Board.height / 2 + Board.GRID_PADDING + Board.FRAME_THICKNESS * 2;
[INFO] [stdout]     |                                                       ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:125:76
[INFO] [stdout]     |
[INFO] [stdout] 125 |             Board.board_center.y + Board.height / 2 + Board.GRID_PADDING + Board.FRAME_THICKNESS * 2;
[INFO] [stdout]     |                                                                            ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let w = Board.width + Board.FRAME_THICKNESS * 2 + Board.GRID_PADDING * 2;
[INFO] [stdout]     |                 ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:126:31
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let w = Board.width + Board.FRAME_THICKNESS * 2 + Board.GRID_PADDING * 2;
[INFO] [stdout]     |                               ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:126:59
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let w = Board.width + Board.FRAME_THICKNESS * 2 + Board.GRID_PADDING * 2;
[INFO] [stdout]     |                                                           ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/game.rs:127:17
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let h = VISIBLE_HEIGHT - y;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `cube_mesh` in this scope
[INFO] [stdout]    --> src/game.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         cube_mesh.render(gl, x, y + y_offset, 0, w, h, Board.BLOCK_WIDTH);
[INFO] [stdout]     |         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:128:56
[INFO] [stdout]     |
[INFO] [stdout] 128 |         cube_mesh.render(gl, x, y + y_offset, 0, w, h, Board.BLOCK_WIDTH);
[INFO] [stdout]     |                                                        ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 132 |         if Board.dump_blocks[0] {
[INFO] [stdout]     |            ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:133:16
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if scoreboard_fade_interpol < 1 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 scoreboard_fade_interpol += delta / scoreboard_fade_duration;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_duration` in this scope
[INFO] [stdout]    --> src/game.rs:134:53
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 scoreboard_fade_interpol += delta / scoreboard_fade_duration;
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:135:20
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 if scoreboard_fade_interpol > 1 {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:136:21
[INFO] [stdout]     |
[INFO] [stdout] 136 |                     scoreboard_fade_interpol = 1
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:140:16
[INFO] [stdout]     |
[INFO] [stdout] 140 |             if scoreboard_fade_interpol > 0 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 scoreboard_fade_interpol -= delta / scoreboard_fade_duration;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_duration` in this scope
[INFO] [stdout]    --> src/game.rs:141:53
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 scoreboard_fade_interpol -= delta / scoreboard_fade_duration;
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:142:20
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 if scoreboard_fade_interpol < 0 {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `scoreboard_fade_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:143:21
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     scoreboard_fade_interpol = 0
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]    --> src/game.rs:152:30
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let monospace_font = to_browser_y(72) + "px Digital-7";
[INFO] [stdout]     |                              ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_y;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]    --> src/game.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let cicle_font = to_browser_y(35) + "px New Cicle Fina";
[INFO] [stdout]     |                          ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_y;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]    --> src/game.rs:155:29
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let blocks_text_x = to_browser_x(x + w - Board.FRAME_THICKNESS);
[INFO] [stdout]     |                             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:155:50
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let blocks_text_x = to_browser_x(x + w - Board.FRAME_THICKNESS);
[INFO] [stdout]     |                                                  ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_h` in this scope
[INFO] [stdout]    --> src/game.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let text_y = to_browser_h(y + h / 2 + text_height / 2 + y_offset);
[INFO] [stdout]     |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_h;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/game.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let amount_text = Math.floor(Data.current_blocks);
[INFO] [stdout]     |                           ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/game.rs:166:38
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let amount_text = Math.floor(Data.current_blocks);
[INFO] [stdout]     |                                      ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]    --> src/game.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |         VISIBLE_WIDTH / 2 - get_status_bar_width() / 2
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]    --> src/game.rs:172:29
[INFO] [stdout]     |
[INFO] [stdout] 172 |         VISIBLE_WIDTH / 2 - get_status_bar_width() / 2
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |         Board.width + Board.FRAME_THICKNESS * 2 + Board.GRID_PADDING * 2
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:176:23
[INFO] [stdout]     |
[INFO] [stdout] 176 |         Board.width + Board.FRAME_THICKNESS * 2 + Board.GRID_PADDING * 2
[INFO] [stdout]     |                       ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:176:51
[INFO] [stdout]     |
[INFO] [stdout] 176 |         Board.width + Board.FRAME_THICKNESS * 2 + Board.GRID_PADDING * 2
[INFO] [stdout]     |                                                   ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Board.board_center.y - Board.height / 2 - Board.FRAME_THICKNESS * 3
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Board.board_center.y - Board.height / 2 - Board.FRAME_THICKNESS * 3
[INFO] [stdout]     |                                ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Board` in this scope
[INFO] [stdout]    --> src/game.rs:180:51
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Board.board_center.y - Board.height / 2 - Board.FRAME_THICKNESS * 3
[INFO] [stdout]     |                                                   ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_stage` in this scope
[INFO] [stdout]    --> src/game.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |         current_stage = Stage.UPPER;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `Stage`
[INFO] [stdout]    --> src/game.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 |         current_stage = Stage.UPPER;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 | / enum Stage {
[INFO] [stdout] 285 | |     UPPER = 3,
[INFO] [stdout] 286 | |     MAIN = 2,
[INFO] [stdout] 287 | |     LOWER = 1,
[INFO] [stdout] 288 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 189 |         current_stage = game::Stage::UPPER.UPPER;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 189 |         current_stage = game::Stage::MAIN.UPPER;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 189 |         current_stage = game::Stage::LOWER.UPPER;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_upper_stage_menu` in this scope
[INFO] [stdout]    --> src/game.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         current_upper_stage_menu = menu;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_start` in this scope
[INFO] [stdout]    --> src/game.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |         y_start = global_yOffset;
[INFO] [stdout]     |         ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset` in this scope
[INFO] [stdout]    --> src/game.rs:192:19
[INFO] [stdout]     |
[INFO] [stdout] 192 |         y_start = global_yOffset;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_end` in this scope
[INFO] [stdout]    --> src/game.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         y_end = VISIBLE_HEIGHT;
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/game.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |         y_end = VISIBLE_HEIGHT;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         y_interpol = 0;
[INFO] [stdout]     |         ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_stage` in this scope
[INFO] [stdout]    --> src/game.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |         current_stage = Stage.LOWER;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `Stage`
[INFO] [stdout]    --> src/game.rs:198:25
[INFO] [stdout]     |
[INFO] [stdout] 198 |         current_stage = Stage.LOWER;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 | / enum Stage {
[INFO] [stdout] 285 | |     UPPER = 3,
[INFO] [stdout] 286 | |     MAIN = 2,
[INFO] [stdout] 287 | |     LOWER = 1,
[INFO] [stdout] 288 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 198 |         current_stage = game::Stage::UPPER.LOWER;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 198 |         current_stage = game::Stage::MAIN.LOWER;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 198 |         current_stage = game::Stage::LOWER.LOWER;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_lower_stage_menu` in this scope
[INFO] [stdout]    --> src/game.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         current_lower_stage_menu = menu;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_start` in this scope
[INFO] [stdout]    --> src/game.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         y_start = global_yOffset;
[INFO] [stdout]     |         ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset` in this scope
[INFO] [stdout]    --> src/game.rs:201:19
[INFO] [stdout]     |
[INFO] [stdout] 201 |         y_start = global_yOffset;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_end` in this scope
[INFO] [stdout]    --> src/game.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         y_end = -VISIBLE_HEIGHT;
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/game.rs:202:18
[INFO] [stdout]     |
[INFO] [stdout] 202 |         y_end = -VISIBLE_HEIGHT;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |         y_interpol = 0;
[INFO] [stdout]     |         ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `current_stage` in this scope
[INFO] [stdout]    --> src/game.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         current_stage = Stage.MAIN;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `Stage`
[INFO] [stdout]    --> src/game.rs:207:25
[INFO] [stdout]     |
[INFO] [stdout] 207 |         current_stage = Stage.MAIN;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 | / enum Stage {
[INFO] [stdout] 285 | |     UPPER = 3,
[INFO] [stdout] 286 | |     MAIN = 2,
[INFO] [stdout] 287 | |     LOWER = 1,
[INFO] [stdout] 288 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 207 |         current_stage = game::Stage::UPPER.MAIN;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 |         current_stage = game::Stage::MAIN.MAIN;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 |         current_stage = game::Stage::LOWER.MAIN;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_start` in this scope
[INFO] [stdout]    --> src/game.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         y_start = global_yOffset;
[INFO] [stdout]     |         ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `global_yOffset` in this scope
[INFO] [stdout]    --> src/game.rs:209:19
[INFO] [stdout]     |
[INFO] [stdout] 209 |         y_start = global_yOffset;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_end` in this scope
[INFO] [stdout]    --> src/game.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         y_end = 0;
[INFO] [stdout]     |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `y_interpol` in this scope
[INFO] [stdout]    --> src/game.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         y_interpol = 0;
[INFO] [stdout]     |         ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]    --> src/game.rs:220:17
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let x = get_status_bar_x();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]    --> src/game.rs:222:17
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let w = get_status_bar_width();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]    --> src/game.rs:223:17
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let h = get_status_bar_height();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories_button` in this scope
[INFO] [stdout]    --> src/game.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         factories_button = Button::new(x, y, w, h / 2, BlockColor::Orange, "Factories", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]    --> src/game.rs:225:28
[INFO] [stdout]     |
[INFO] [stdout] 225 |         factories_button = Button::new(x, y, w, h / 2, BlockColor::Orange, "Factories", || {
[INFO] [stdout]     |                            ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::button::Button;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `open_upper_stage` in this scope
[INFO] [stdout]    --> src/game.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |             open_upper_stage(StageMenu.FACTORIES);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `StageMenu`
[INFO] [stdout]    --> src/game.rs:226:30
[INFO] [stdout]     |
[INFO] [stdout] 226 |             open_upper_stage(StageMenu.FACTORIES);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:290:1
[INFO] [stdout]     |
[INFO] [stdout] 290 | / enum StageMenu {
[INFO] [stdout] 291 | |     Factories,
[INFO] [stdout] 292 | |     Upgrades,
[INFO] [stdout] 293 | |     Stats,
[INFO] [stdout] 294 | |     Achievements,
[INFO] [stdout] 295 | |     Settings,
[INFO] [stdout] 296 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 226 |             open_upper_stage(game::StageMenu::Factories.FACTORIES);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 |             open_upper_stage(game::StageMenu::Upgrades.FACTORIES);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 |             open_upper_stage(game::StageMenu::Stats.FACTORIES);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 |             open_upper_stage(game::StageMenu::Achievements.FACTORIES);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       and 1 other candidate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `stats_button` in this scope
[INFO] [stdout]    --> src/game.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         stats_button = Button::new(x, y + h / 2, w - h / 2, h / 2, BlockColor::Blue, "Stats", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]    --> src/game.rs:228:24
[INFO] [stdout]     |
[INFO] [stdout] 228 |         stats_button = Button::new(x, y + h / 2, w - h / 2, h / 2, BlockColor::Blue, "Stats", || {
[INFO] [stdout]     |                        ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::button::Button;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `open_upper_stage` in this scope
[INFO] [stdout]    --> src/game.rs:229:13
[INFO] [stdout]     |
[INFO] [stdout] 229 |             open_upper_stage(StageMenu.STATS);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `StageMenu`
[INFO] [stdout]    --> src/game.rs:229:30
[INFO] [stdout]     |
[INFO] [stdout] 229 |             open_upper_stage(StageMenu.STATS);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:290:1
[INFO] [stdout]     |
[INFO] [stdout] 290 | / enum StageMenu {
[INFO] [stdout] 291 | |     Factories,
[INFO] [stdout] 292 | |     Upgrades,
[INFO] [stdout] 293 | |     Stats,
[INFO] [stdout] 294 | |     Achievements,
[INFO] [stdout] 295 | |     Settings,
[INFO] [stdout] 296 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 229 |             open_upper_stage(game::StageMenu::Factories.STATS);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 229 |             open_upper_stage(game::StageMenu::Upgrades.STATS);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 229 |             open_upper_stage(game::StageMenu::Stats.STATS);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 229 |             open_upper_stage(game::StageMenu::Achievements.STATS);
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       and 1 other candidate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `settings_button` in this scope
[INFO] [stdout]    --> src/game.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         settings_button = Button::new(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]    --> src/game.rs:231:27
[INFO] [stdout]     |
[INFO] [stdout] 231 |         settings_button = Button::new(
[INFO] [stdout]     |                           ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::button::Button;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `open_lower_stage` in this scope
[INFO] [stdout]    --> src/game.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 open_lower_stage(StageMenu.SETTINGS);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found enum `StageMenu`
[INFO] [stdout]    --> src/game.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 open_lower_stage(StageMenu.SETTINGS);
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the enum is defined here
[INFO] [stdout]    --> src/game.rs:290:1
[INFO] [stdout]     |
[INFO] [stdout] 290 | / enum StageMenu {
[INFO] [stdout] 291 | |     Factories,
[INFO] [stdout] 292 | |     Upgrades,
[INFO] [stdout] 293 | |     Stats,
[INFO] [stdout] 294 | |     Achievements,
[INFO] [stdout] 295 | |     Settings,
[INFO] [stdout] 296 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] help: you might have meant to use one of the following enum variants
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 open_lower_stage(game::StageMenu::Factories.SETTINGS);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 239 |                 open_lower_stage(game::StageMenu::Upgrades.SETTINGS);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 239 |                 open_lower_stage(game::StageMenu::Stats.SETTINGS);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 239 |                 open_lower_stage(game::StageMenu::Achievements.SETTINGS);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       and 1 other candidate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `settings_button` in this scope
[INFO] [stdout]    --> src/game.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 242 |         settings_button.typeface = "Material Icons";
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `settings_button` in this scope
[INFO] [stdout]    --> src/game.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |         settings_button.font_size = 36;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `upper_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:245:9
[INFO] [stdout]     |
[INFO] [stdout] 245 |         upper_stage_back_button = Button::new(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]    --> src/game.rs:245:35
[INFO] [stdout]     |
[INFO] [stdout] 245 |         upper_stage_back_button = Button::new(
[INFO] [stdout]     |                                   ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::button::Button;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]    --> src/game.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             VISIBLE_HEIGHT - h / 2,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `go_back_to_board` in this scope
[INFO] [stdout]    --> src/game.rs:253:17
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 go_back_to_board();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `upper_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |         upper_stage_back_button.typeface = "Material Icons";
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `upper_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |         upper_stage_back_button.font_size = 36;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `lower_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |         lower_stage_back_button = Button::new(x, 0, w, h / 2, BlockColor::Red, "keyboard_arrow_up", || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]    --> src/game.rs:259:35
[INFO] [stdout]     |
[INFO] [stdout] 259 |         lower_stage_back_button = Button::new(x, 0, w, h / 2, BlockColor::Red, "keyboard_arrow_up", || {
[INFO] [stdout]     |                                   ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::button::Button;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `go_back_to_board` in this scope
[INFO] [stdout]    --> src/game.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |             go_back_to_board();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `lower_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |         lower_stage_back_button.typeface = "Material Icons";
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `lower_stage_back_button` in this scope
[INFO] [stdout]    --> src/game.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |         lower_stage_back_button.font_size = 36;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/game.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |         gl: WebGlRenderingContext,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/game.rs:273:23
[INFO] [stdout]     |
[INFO] [stdout] 273 |         program_info: ProgramInfo,
[INFO] [stdout]     |                       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]    --> src/game.rs:274:17
[INFO] [stdout]     |
[INFO] [stdout] 274 |         ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories_button` in this scope
[INFO] [stdout]    --> src/game.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |         factories_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `stats_button` in this scope
[INFO] [stdout]    --> src/game.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         stats_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `settings_button` in this scope
[INFO] [stdout]    --> src/game.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |         settings_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let gl = window.gl;
[INFO] [stdout]    |              ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let gl_canvas = window.gl_canvas;
[INFO] [stdout]    |                     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let ctx_2d = window.ctx_2d;
[INFO] [stdout]    |                  ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let canvas2d = window.canvas2d;
[INFO] [stdout]    |                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Data`
[INFO] [stdout]   --> src/init.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let data = Data::load(ctx_2d);
[INFO] [stdout]    |                ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::data::Data;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     window.onresize = || {
[INFO] [stdout]    |     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         window.gl_canvas.width = window.inner_width;
[INFO] [stdout]    |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 |         window.gl_canvas.width = window.inner_width;
[INFO] [stdout]    |                                  ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         window.gl_canvas.height = window.inner_height;
[INFO] [stdout]    |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:32:35
[INFO] [stdout]    |
[INFO] [stdout] 32 |         window.gl_canvas.height = window.inner_height;
[INFO] [stdout]    |                                   ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         window.canvas2d.width = window.inner_width;
[INFO] [stdout]    |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |         window.canvas2d.width = window.inner_width;
[INFO] [stdout]    |                                 ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         window.canvas2d.height = window.inner_height;
[INFO] [stdout]    |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:35:34
[INFO] [stdout]    |
[INFO] [stdout] 35 |         window.canvas2d.height = window.inner_height;
[INFO] [stdout]    |                                  ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `cube_mesh` in this scope
[INFO] [stdout]   --> src/init.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         cube_mesh.init(gl, matrices, program_info);
[INFO] [stdout]    |         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/init.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         window.onresize();
[INFO] [stdout]    |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, found built-in attribute `main`
[INFO] [stdout]   --> src/init.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         main(
[INFO] [stdout]    |         ^^^^ not a function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `init_game` in this scope
[INFO] [stdout]   --> src/init.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     init_game();
[INFO] [stdout]    |     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `init_settings` in this scope
[INFO] [stdout]   --> src/init.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     init_settings();
[INFO] [stdout]    |     ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::settings::init_settings;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `document` in this scope
[INFO] [stdout]   --> src/init.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let error_box = document.get_element_by_id("error_text");
[INFO] [stdout]    |                     ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]   --> src/init.rs:77:20
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn get_buffers(gl: WebGlRenderingContext) {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Buffers` in this scope
[INFO] [stdout]   --> src/init.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     Buffers {
[INFO] [stdout]    |     ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::Buffers;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `load_text_resource` in this scope
[INFO] [stdout]   --> src/init.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     load_text_resource("../shaders/vertex.glsl", |vs_error, vs_result| {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `load_text_resource` in this scope
[INFO] [stdout]   --> src/init.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             load_text_resource("../shaders/fragment.glsl", |fs_error, fs_result| {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Shaders` in this scope
[INFO] [stdout]   --> src/init.rs:94:30
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     callback(Shaders {
[INFO] [stdout]    |                              ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/init.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn get_shader_program_info(gl: WebGlRenderingContext, shaders: Shaders) -> ProgramInfo {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Shaders` in this scope
[INFO] [stdout]    --> src/init.rs:106:64
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn get_shader_program_info(gl: WebGlRenderingContext, shaders: Shaders) -> ProgramInfo {
[INFO] [stdout]     |                                                                ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/init.rs:106:76
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn get_shader_program_info(gl: WebGlRenderingContext, shaders: Shaders) -> ProgramInfo {
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/init.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     ProgramInfo {
[INFO] [stdout]     |     ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `UniformLocations` in this scope
[INFO] [stdout]    --> src/init.rs:140:28
[INFO] [stdout]     |
[INFO] [stdout] 140 |         uniform_locations: UniformLocations {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::UniformLocations;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `AttributeLocations` in this scope
[INFO] [stdout]    --> src/init.rs:146:30
[INFO] [stdout]     |
[INFO] [stdout] 146 |         attribute_locations: AttributeLocations {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::AttributeLocations;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/init.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn compile_shader_or_error(gl: WebGlRenderingContext, shader: &str) {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/init.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn init_culling(gl: WebGlRenderingContext) {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Matrix` in this scope
[INFO] [stdout]    --> src/init.rs:167:53
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn set_camera_offset(x: f32, y: f32, camera_matrix: Matrix, matrix_uniform_location: i32) {
[INFO] [stdout]     |                                                     ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]     |
[INFO] [stdout] 1   | use cgmath::Matrix;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `mat4` in this scope
[INFO] [stdout]    --> src/init.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     mat4.look_at(
[INFO] [stdout]     |     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use bevy::math::mat4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `CAMERA_Z` in this scope
[INFO] [stdout]    --> src/init.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 170 |         [VISIBLE_WIDTH / 2 - x, VISIBLE_HEIGHT / 2 - y, -CAMERA_Z],
[INFO] [stdout]     |                                                          ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::CAMERA_Z;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/init.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn get_matrices(gl: WebGlRenderingContext, program_info: ProgramInfo) -> Matrices {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/init.rs:177:58
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn get_matrices(gl: WebGlRenderingContext, program_info: ProgramInfo) -> Matrices {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Matrices` in this scope
[INFO] [stdout]    --> src/init.rs:177:74
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn get_matrices(gl: WebGlRenderingContext, program_info: ProgramInfo) -> Matrices {
[INFO] [stdout]     |                                                                          ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::Matrices;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `mat4` in this scope
[INFO] [stdout]    --> src/init.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     mat4.identity(i);
[INFO] [stdout]     |     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use bevy::math::mat4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `mat4` in this scope
[INFO] [stdout]    --> src/init.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     mat4.look_at(
[INFO] [stdout]     |     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use bevy::math::mat4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `CAMERA_Z` in this scope
[INFO] [stdout]    --> src/init.rs:186:50
[INFO] [stdout]     |
[INFO] [stdout] 186 |         [VISIBLE_WIDTH / 2, VISIBLE_HEIGHT / 2, -CAMERA_Z],
[INFO] [stdout]     |                                                  ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::CAMERA_Z;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `mat4` in this scope
[INFO] [stdout]    --> src/init.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 |     mat4.identity(v);
[INFO] [stdout]     |     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use bevy::math::mat4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Matrices` in this scope
[INFO] [stdout]    --> src/init.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 197 |     Matrices {
[INFO] [stdout]     |     ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::Matrices;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Matrix` in this scope
[INFO] [stdout]    --> src/init.rs:205:35
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn get_perspective_matrix(output: Matrix) {
[INFO] [stdout]     |                                   ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]     |
[INFO] [stdout] 1   | use cgmath::Matrix;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `mat4` in this scope
[INFO] [stdout]    --> src/init.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 206 |     mat4.perspective(
[INFO] [stdout]     |     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use bevy::math::mat4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `field_of_view` in this scope
[INFO] [stdout]    --> src/init.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |         field_of_view * Math.PI / 180,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/init.rs:208:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |         field_of_view * Math.PI / 180,
[INFO] [stdout]     |                         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]    --> src/init.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         window.gl_canvas.width / window.gl_canvas.height,
[INFO] [stdout]     |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]    --> src/init.rs:209:34
[INFO] [stdout]     |
[INFO] [stdout] 209 |         window.gl_canvas.width / window.gl_canvas.height,
[INFO] [stdout]     |                                  ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `CAMERA_Z` in this scope
[INFO] [stdout]    --> src/init.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 211 |         CAMERA_Z * -1 + 100,
[INFO] [stdout]     |         ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::CAMERA_Z;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]    --> src/init.rs:215:22
[INFO] [stdout]     |
[INFO] [stdout] 215 | fn init_lighting(gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]    --> src/init.rs:215:59
[INFO] [stdout]     |
[INFO] [stdout] 215 | fn init_lighting(gl: WebGlRenderingContext, program_info: ProgramInfo) {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ProgramInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `FactoryType` in this scope
[INFO] [stdout]  --> src/listeners.rs:3:51
[INFO] [stdout]   |
[INFO] [stdout] 3 |     factory_purchase_listeners: Vec<Box<dyn FnMut(FactoryType, i32)>>,
[INFO] [stdout]   |                                                   ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::factories::FactoryType;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `FactoryType` in this scope
[INFO] [stdout]   --> src/listeners.rs:13:56
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn invoke_factory_purchase_listeners(factory_code: FactoryType, count: i32) {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::factories::FactoryType;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]   --> src/listeners.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn invoke_factory_purchase_listeners(factory_code: FactoryType, count: i32) {
[INFO] [stdout]    |        --------------------------------- this function doesn't have a `self` parameter
[INFO] [stdout] 14 |         self.factory_purchase_listeners.for_each(|listener| {
[INFO] [stdout]    |         ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout]    |
[INFO] [stdout] help: add a `self` receiver parameter to make the associated `fn` a method
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn invoke_factory_purchase_listeners(&self, factory_code: FactoryType, count: i32) {
[INFO] [stdout]    |                                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]  --> src/noti.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | const NOTIFICATION_HEIGHT: f32 = get_status_bar_height() * 3 / 4;
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]  --> src/noti.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn render_notifications(delta: f32, ctx_2d: CanvasRenderingContext2d) {
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_elapsed_time` in this scope
[INFO] [stdout]  --> src/noti.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 |     if noti_elapsed_time > noti_duration {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_duration` in this scope
[INFO] [stdout]  --> src/noti.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 |     if noti_elapsed_time > noti_duration {
[INFO] [stdout]   |                            ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_elapsed_time` in this scope
[INFO] [stdout]  --> src/noti.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         noti_elapsed_time += delta;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `quint_ease_out` in this scope
[INFO] [stdout]   --> src/noti.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let enter = quint_ease_out(noti_elapsed_time / NOTIFICATION_ANIMATE_DURATION);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::quint_ease_out;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_elapsed_time` in this scope
[INFO] [stdout]   --> src/noti.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let enter = quint_ease_out(noti_elapsed_time / NOTIFICATION_ANIMATE_DURATION);
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/noti.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     enter = Math.min(1, enter);
[INFO] [stdout]    |             ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `quint_ease_out` in this scope
[INFO] [stdout]   --> src/noti.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         1 - quint_ease_out((noti_duration - noti_elapsed_time) / NOTIFICATION_ANIMATE_DURATION);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::quint_ease_out;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_duration` in this scope
[INFO] [stdout]   --> src/noti.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 |         1 - quint_ease_out((noti_duration - noti_elapsed_time) / NOTIFICATION_ANIMATE_DURATION);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_elapsed_time` in this scope
[INFO] [stdout]   --> src/noti.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |         1 - quint_ease_out((noti_duration - noti_elapsed_time) / NOTIFICATION_ANIMATE_DURATION);
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/noti.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     exit = Math.max(0, exit);
[INFO] [stdout]    |            ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/noti.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let x = to_browser_x(get_status_bar_x());
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_x` in this scope
[INFO] [stdout]   --> src/noti.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let x = to_browser_x(get_status_bar_x());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/noti.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let y = to_browser_y(-(NOTIFICATION_HEIGHT + SHADOW) * (1 - (enter - exit)));
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SHADOW` in this scope
[INFO] [stdout]   --> src/noti.rs:20:50
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let y = to_browser_y(-(NOTIFICATION_HEIGHT + SHADOW) * (1 - (enter - exit)));
[INFO] [stdout]    |                                                  ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::SHADOW;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_w` in this scope
[INFO] [stdout]   --> src/noti.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let w = to_browser_w(get_status_bar_width());
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_w;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]   --> src/noti.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let w = to_browser_w(get_status_bar_width());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_h` in this scope
[INFO] [stdout]   --> src/noti.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let h = to_browser_h(NOTIFICATION_HEIGHT);
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_h;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `apply_shadow` in this scope
[INFO] [stdout]   --> src/noti.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     apply_shadow(ctx_2d);
[INFO] [stdout]    |     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `MAX_ALPHA` in this scope
[INFO] [stdout]   --> src/noti.rs:27:50
[INFO] [stdout]    |
[INFO] [stdout] 27 |     ctx_2d.fill_style = "rgba(255, 255, 255, " + MAX_ALPHA + ")";
[INFO] [stdout]    |                                                  ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::MAX_ALPHA;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `remove_shadow` in this scope
[INFO] [stdout]   --> src/noti.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     remove_shadow(ctx_2d);
[INFO] [stdout]    |     ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::remove_shadow;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_sans_font` in this scope
[INFO] [stdout]   --> src/noti.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 37 |     ctx_2d.font = get_sans_font();
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::dialogs::get_sans_font;
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::get_sans_font;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_message` in this scope
[INFO] [stdout]   --> src/noti.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |     ctx_2d.fill_text(noti_message, x + w / 2, text_y);
[INFO] [stdout]    |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_message` in this scope
[INFO] [stdout]   --> src/noti.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     noti_message = message;
[INFO] [stdout]    |     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_duration` in this scope
[INFO] [stdout]   --> src/noti.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         noti_duration = duration;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_duration` in this scope
[INFO] [stdout]   --> src/noti.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         noti_duration = NOTIFICATION_ANIMATE_DURATION * 2;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `noti_elapsed_time` in this scope
[INFO] [stdout]   --> src/noti.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     noti_elapsed_time = 0;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_width` in this scope
[INFO] [stdout]  --> src/settings.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let w = get_status_bar_width() / 2;
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]  --> src/settings.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let h = get_status_bar_height() / 2;
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `reset_button` in this scope
[INFO] [stdout]  --> src/settings.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     reset_button = Button::new(
[INFO] [stdout]   |     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/settings.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 |     reset_button = Button::new(
[INFO] [stdout]   |                    ^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::button::Button;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]   --> src/settings.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         VISIBLE_WIDTH / 2 - w / 2,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]   --> src/settings.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         VISIBLE_HEIGHT / 2 - h / 2,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Data`
[INFO] [stdout]   --> src/settings.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             Data::reset();
[INFO] [stdout]    |             ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::data::Data;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WebGlRenderingContext` in this scope
[INFO] [stdout]   --> src/settings.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     gl: WebGlRenderingContext,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ProgramInfo` in this scope
[INFO] [stdout]   --> src/settings.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 25 |     program_info: ProgramInfo,
[INFO] [stdout]    |                   ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ProgramInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/settings.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |     ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_h` in this scope
[INFO] [stdout]   --> src/settings.rs:32:50
[INFO] [stdout]    |
[INFO] [stdout] 32 |     ctx_2d.font = format!("{}px New Cicle Fina", to_browser_h(24));
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_h;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/settings.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         to_browser_x(VISIBLE_WIDTH / 2),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]   --> src/settings.rs:35:22
[INFO] [stdout]    |
[INFO] [stdout] 35 |         to_browser_x(VISIBLE_WIDTH / 2),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/settings.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         to_browser_y(VISIBLE_HEIGHT / 2 + reset_button.h + y_offset),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]   --> src/settings.rs:36:22
[INFO] [stdout]    |
[INFO] [stdout] 36 |         to_browser_y(VISIBLE_HEIGHT / 2 + reset_button.h + y_offset),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `reset_button` in this scope
[INFO] [stdout]   --> src/settings.rs:36:43
[INFO] [stdout]    |
[INFO] [stdout] 36 |         to_browser_y(VISIBLE_HEIGHT / 2 + reset_button.h + y_offset),
[INFO] [stdout]    |                                           ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `reset_button` in this scope
[INFO] [stdout]   --> src/settings.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     reset_button.render(delta, gl, program_info, ctx_2d, y_offset);
[INFO] [stdout]    |     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Data` in this scope
[INFO] [stdout]  --> src/stats.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn lifetime_blocks_collected(&self, data: &Data) -> u64 {
[INFO] [stdout]   |                                                ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::data::Data;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]   --> src/stats.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 |         for prop in factories {
[INFO] [stdout]    |                     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]   --> src/stats.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 |             total += factories[prop].total_blocks_produced;
[INFO] [stdout]    |                      ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Data` in this scope
[INFO] [stdout]   --> src/stats.rs:23:30
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn favorite_color(data: &Data) {
[INFO] [stdout]    |                              ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::data::Data;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/stats.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |     ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]   --> src/stats.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let big_font_size = SANS_TEXT_HEIGHT * 1.25;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_h` in this scope
[INFO] [stdout]   --> src/stats.rs:61:53
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let big_sans_serif = format!("{}px sans-serif", to_browser_h(big_font_size));
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_h;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]   --> src/stats.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |         utils::to_browser_x(VISIBLE_WIDTH / 2),
[INFO] [stdout]    |                             ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/stats.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         to_browser_y(text_y),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/stats.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         to_browser_x(VISIBLE_WIDTH / 2),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]   --> src/stats.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         to_browser_x(VISIBLE_WIDTH / 2),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/stats.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |         to_browser_y(text_y),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]   --> src/stats.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |     text_y + 75 + PADDING;
[INFO] [stdout]    |                   ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::PADDING;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Any` in this scope
[INFO] [stdout]   --> src/stats.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |     stat_value: Any,
[INFO] [stdout]    |                 ^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 1  | use core::any::Any;
[INFO] [stdout]    |
[INFO] [stdout] 1  | use std::any::Any;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]   --> src/stats.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |     ctx_2d: CanvasRenderingContext2d,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/stats.rs:92:33
[INFO] [stdout]    |
[INFO] [stdout] 92 |     ctx_2d.fill_text(stat_name, to_browser_x(PADDING), to_browser_y(text_y));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]   --> src/stats.rs:92:46
[INFO] [stdout]    |
[INFO] [stdout] 92 |     ctx_2d.fill_text(stat_name, to_browser_x(PADDING), to_browser_y(text_y));
[INFO] [stdout]    |                                              ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::PADDING;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/stats.rs:92:56
[INFO] [stdout]    |
[INFO] [stdout] 92 |     ctx_2d.fill_text(stat_name, to_browser_x(PADDING), to_browser_y(text_y));
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]   --> src/stats.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         to_browser_x(VISIBLE_WIDTH - PADDING),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_x;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]   --> src/stats.rs:97:22
[INFO] [stdout]    |
[INFO] [stdout] 97 |         to_browser_x(VISIBLE_WIDTH - PADDING),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]   --> src/stats.rs:97:38
[INFO] [stdout]    |
[INFO] [stdout] 97 |         to_browser_x(VISIBLE_WIDTH - PADDING),
[INFO] [stdout]    |                                      ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::ui::PADDING;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]   --> src/stats.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |         to_browser_y(text_y),
[INFO] [stdout]    |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::to_browser_y;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]    --> src/stats.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |         to_browser_x(PADDING + 5) + ctx_2d.measure_text(stat_name).width,
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/stats.rs:104:22
[INFO] [stdout]     |
[INFO] [stdout] 104 |         to_browser_x(PADDING + 5) + ctx_2d.measure_text(stat_name).width,
[INFO] [stdout]     |                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]    --> src/stats.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         to_browser_y(text_y),
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_y;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_x` in this scope
[INFO] [stdout]    --> src/stats.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |         to_browser_x(VISIBLE_WIDTH - PADDING - 5) - ctx_2d.measure_text(stat_value).width,
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]    --> src/stats.rs:108:22
[INFO] [stdout]     |
[INFO] [stdout] 108 |         to_browser_x(VISIBLE_WIDTH - PADDING - 5) - ctx_2d.measure_text(stat_value).width,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/stats.rs:108:38
[INFO] [stdout]     |
[INFO] [stdout] 108 |         to_browser_x(VISIBLE_WIDTH - PADDING - 5) - ctx_2d.measure_text(stat_value).width,
[INFO] [stdout]     |                                      ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_y` in this scope
[INFO] [stdout]    --> src/stats.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |         to_browser_y(text_y),
[INFO] [stdout]     |         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_y;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/stats.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 |     text_y + SANS_TEXT_HEIGHT * 1.25;
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CanvasRenderingContext2d` in this scope
[INFO] [stdout]    --> src/stats.rs:115:25
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn render_stats(ctx_2d: CanvasRenderingContext2d, y_offset: f32) {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `to_browser_w` in this scope
[INFO] [stdout]    --> src/stats.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let max_width = to_browser_w(VISIBLE_WIDTH - PADDING * 2);
[INFO] [stdout]     |                     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::utils::to_browser_w;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_WIDTH` in this scope
[INFO] [stdout]    --> src/stats.rs:116:34
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let max_width = to_browser_w(VISIBLE_WIDTH - PADDING * 2);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::init::VISIBLE_WIDTH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/stats.rs:116:50
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let max_width = to_browser_w(VISIBLE_WIDTH - PADDING * 2);
[INFO] [stdout]     |                                                  ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_status_bar_height` in this scope
[INFO] [stdout]    --> src/stats.rs:117:18
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let text_y = get_status_bar_height() + PADDING + y_offset;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/stats.rs:117:44
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let text_y = get_status_bar_height() + PADDING + y_offset;
[INFO] [stdout]     |                                            ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]    --> src/stats.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         Math.floor(Stats.lifetime_blocks_collected)
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PADDING` in this scope
[INFO] [stdout]    --> src/stats.rs:130:15
[INFO] [stdout]     |
[INFO] [stdout] 130 |     text_y += PADDING;
[INFO] [stdout]     |               ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::PADDING;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |     for prop in Data.lifetime_blocks_by_color {
[INFO] [stdout]     |                 ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:134:18
[INFO] [stdout]     |
[INFO] [stdout] 134 |         total += Data.lifetime_blocks_by_color[prop];
[INFO] [stdout]     |                  ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_sans_font` in this scope
[INFO] [stdout]    --> src/stats.rs:137:19
[INFO] [stdout]     |
[INFO] [stdout] 137 |     ctx_2d.font = get_sans_font();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::dialogs::get_sans_font;
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::get_sans_font;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |         Data.lifetime_blocks_by_color.red.to_locale_string(),
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |         Data.lifetime_blocks_by_color.orange.to_locale_string(),
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         Data.lifetime_blocks_by_color.green.to_locale_string(),
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Data.lifetime_blocks_by_color.blue.to_locale_string(),
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/stats.rs:174:15
[INFO] [stdout]     |
[INFO] [stdout] 174 |     text_y += SANS_TEXT_HEIGHT * 1.25;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         Data.lifetime_clicks.successful.to_locale_string(),
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Data` in this scope
[INFO] [stdout]    --> src/stats.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         Data.lifetime_clicks.failed.to_locale_string(),
[INFO] [stdout]     |         ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `SANS_TEXT_HEIGHT` in this scope
[INFO] [stdout]    --> src/stats.rs:191:15
[INFO] [stdout]     |
[INFO] [stdout] 191 |     text_y += SANS_TEXT_HEIGHT * 1.25;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::ui::SANS_TEXT_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/stats.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 |     for prop in factories {
[INFO] [stdout]     |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `factories` in this scope
[INFO] [stdout]    --> src/stats.rs:196:28
[INFO] [stdout]     |
[INFO] [stdout] 196 |         total_factories += factories[prop].amount_owned;
[INFO] [stdout]     |                            ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `int_to_rgb` in this scope
[INFO] [stdout]   --> src/ui.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let rgb = int_to_rgb(color);
[INFO] [stdout]    |               ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::int_to_rgb;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `rgb_to_int` in this scope
[INFO] [stdout]   --> src/ui.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     rgb_to_int(gray, gray, gray)
[INFO] [stdout]    |     ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::utils::rgb_to_int;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Matrix` in this scope
[INFO] [stdout]  --> src/utils.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]   |                        ^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cgmath::Matrix;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]  --> src/utils.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     window.gl.uniform_matrix4fv(uniform_location, false, matrix);
[INFO] [stdout]   |     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/utils.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     window.inner_width
[INFO] [stdout]    |     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `window` in this scope
[INFO] [stdout]   --> src/utils.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     window.inner_height
[INFO] [stdout]    |     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `VISIBLE_HEIGHT` in this scope
[INFO] [stdout]   --> src/lib.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 | const CAMERA_Z: f32 = VISIBLE_HEIGHT / 2 / Math.tan(field_of_view * Math.PI / 180 / 2);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]    |
[INFO] [stdout] 1  | use crate::init::VISIBLE_HEIGHT;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/lib.rs:22:44
[INFO] [stdout]    |
[INFO] [stdout] 22 | const CAMERA_Z: f32 = VISIBLE_HEIGHT / 2 / Math.tan(field_of_view * Math.PI / 180 / 2);
[INFO] [stdout]    |                                            ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `field_of_view` in this scope
[INFO] [stdout]   --> src/lib.rs:22:53
[INFO] [stdout]    |
[INFO] [stdout] 22 | const CAMERA_Z: f32 = VISIBLE_HEIGHT / 2 / Math.tan(field_of_view * Math.PI / 180 / 2);
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Math` in this scope
[INFO] [stdout]   --> src/lib.rs:22:69
[INFO] [stdout]    |
[INFO] [stdout] 22 | const CAMERA_Z: f32 = VISIBLE_HEIGHT / 2 / Math.tan(field_of_view * Math.PI / 180 / 2);
[INFO] [stdout]    |                                                                     ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `prog` in this scope
[INFO] [stdout]   --> src/lib.rs:38:14
[INFO] [stdout]    |
[INFO] [stdout] 38 |     program: prog,
[INFO] [stdout]    |              ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `bind_matrix` is private
[INFO] [stdout]  --> src/cube.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::utils::{int_to_rgb, bind_matrix};
[INFO] [stdout]   |                                ^^^^^^^^^^^ private function
[INFO] [stdout]   |
[INFO] [stdout] note: the function `bind_matrix` is defined here
[INFO] [stdout]  --> src/utils.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `bind_matrix` is private
[INFO] [stdout]   --> src/init.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |         utils::bind_matrix(matrices.proj, program_info.uniform_locations.proj_matrix);
[INFO] [stdout]    |                ^^^^^^^^^^^ private function
[INFO] [stdout]    |
[INFO] [stdout] note: the function `bind_matrix` is defined here
[INFO] [stdout]   --> src/utils.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout] 3  | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `bind_matrix` is private
[INFO] [stdout]    --> src/init.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 |     utils::bind_matrix(camera_matrix, matrix_uniform_location);
[INFO] [stdout]     |            ^^^^^^^^^^^ private function
[INFO] [stdout]     |
[INFO] [stdout] note: the function `bind_matrix` is defined here
[INFO] [stdout]    --> src/utils.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `bind_matrix` is private
[INFO] [stdout]    --> src/init.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 |     utils::bind_matrix(w, program_info.uniform_locations.world_matrix);
[INFO] [stdout]     |            ^^^^^^^^^^^ private function
[INFO] [stdout]     |
[INFO] [stdout] note: the function `bind_matrix` is defined here
[INFO] [stdout]    --> src/utils.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `bind_matrix` is private
[INFO] [stdout]    --> src/init.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 |     utils::bind_matrix(v, program_info.uniform_locations.view_matrix);
[INFO] [stdout]     |            ^^^^^^^^^^^ private function
[INFO] [stdout]     |
[INFO] [stdout] note: the function `bind_matrix` is defined here
[INFO] [stdout]    --> src/utils.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `bind_matrix` is private
[INFO] [stdout]    --> src/init.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 |     utils::bind_matrix(p, program_info.uniform_locations.proj_matrix);
[INFO] [stdout]     |            ^^^^^^^^^^^ private function
[INFO] [stdout]     |
[INFO] [stdout] note: the function `bind_matrix` is defined here
[INFO] [stdout]    --> src/utils.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout] 3   | fn bind_matrix(matrix: Matrix, uniform_location: i32) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here
[INFO] [stdout]    --> src/dialogs.rs:262:6
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl DialogButton {
[INFO] [stdout]     |      ^^^^^^^^^^^^- help: indicate the anonymous lifetime: `<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/dialogs.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |     dialog: &'a Dialog,
[INFO] [stdout]     |                 ^^^^^^ help: use `dyn`: `dyn Dialog`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/dialogs.rs:263:25
[INFO] [stdout]     |
[INFO] [stdout] 263 |     pub fn new(dialog: &Dialog, ty: DialogButtonType, text: String, action: F) -> Self {
[INFO] [stdout]     |                         ^^^^^^ help: use `dyn`: `dyn Dialog`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/dialogs.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |     dialog: Dialog,
[INFO] [stdout]     |             ^^^^^^ help: use `dyn`: `dyn Dialog`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]  --> src/fx.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `to_browser_w`, `to_browser_x`, `to_browser_y`
[INFO] [stdout]  --> src/ui.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::{to_browser_h, to_browser_w, to_browser_x, to_browser_y};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Button`
[INFO] [stdout]    --> src/button.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |     button: Button,
[INFO] [stdout]     |             ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/button.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Button<F: Fn()> {
[INFO] [stdout]     |            ^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 307 |     button: Button<F>,
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: the precise format of `Fn`-family traits' type parameters is subject to change
[INFO] [stdout]    --> src/dialogs.rs:253:28
[INFO] [stdout]     |
[INFO] [stdout] 253 | struct DialogButton<'a, F: FnOnce> {
[INFO] [stdout]     |                            ^^^^^^ help: use parenthetical notation instead: `FnOnce() -> ()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #29625 <https://github.com/rust-lang/rust/issues/29625> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for trait `FnOnce`
[INFO] [stdout]    --> src/dialogs.rs:253:28
[INFO] [stdout]     |
[INFO] [stdout] 253 | struct DialogButton<'a, F: FnOnce> {
[INFO] [stdout]     |                            ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: trait defined here, with 1 generic parameter: `Args`
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 253 | struct DialogButton<'a, F: FnOnce<Args>> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: this struct takes 3 generic arguments but 0 generic arguments were supplied
[INFO] [stdout]   --> src/dialogs.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<'a, PosF, NegF, NeuF> PlainDialog<'a> {
[INFO] [stdout]    |                            ^^^^^^^^^^^ expected 3 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 3 generic parameters: `PosF`, `NegF`, `NeuF`
[INFO] [stdout]   --> src/dialogs.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct PlainDialog<'a, PosF, NegF, NeuF>
[INFO] [stdout]    |        ^^^^^^^^^^^     ----  ----  ----
[INFO] [stdout] help: add missing generic arguments
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<'a, PosF, NegF, NeuF> PlainDialog<'a, PosF, NegF, NeuF> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `DialogButton`
[INFO] [stdout]    --> src/dialogs.rs:262:6
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl DialogButton {
[INFO] [stdout]     |      ^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/dialogs.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | struct DialogButton<'a, F: FnOnce> {
[INFO] [stdout]     |        ^^^^^^^^^^^^     -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl DialogButton<F> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Factory`
[INFO] [stdout]   --> src/factories.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Factory {
[INFO] [stdout]    |      ^^^^^^^ expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 2 generic parameters: `EmptyFn`, `BuyFn`
[INFO] [stdout]   --> src/factories.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Factory<EmptyFn: Fn(), BuyFn: Fn()> {
[INFO] [stdout]    |        ^^^^^^^ -------        -----
[INFO] [stdout] help: add missing generic arguments
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Factory<EmptyFn, BuyFn> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Button`
[INFO] [stdout]    --> src/factories.rs:539:28
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button, Button) {
[INFO] [stdout]     |                            ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/button.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Button<F: Fn()> {
[INFO] [stdout]     |            ^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button<F>, Button) {
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Button`
[INFO] [stdout]    --> src/factories.rs:539:36
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button, Button) {
[INFO] [stdout]     |                                    ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `F`
[INFO] [stdout]    --> src/button.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Button<F: Fn()> {
[INFO] [stdout]     |            ^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn init_page_buttons() -> (Button, Button<F>) {
[INFO] [stdout]     |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 521 previous errors; 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0412, E0422, E0423, E0424, E0425, E0432, E0433, E0603...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `blockery-rs`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "ea81560a2d866080c08e793a68709fabadc2527201ce94876a98c8451051ee2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea81560a2d866080c08e793a68709fabadc2527201ce94876a98c8451051ee2a", kill_on_drop: false }`
[INFO] [stdout] ea81560a2d866080c08e793a68709fabadc2527201ce94876a98c8451051ee2a
