[INFO] cloning repository https://github.com/NextLegacy/rust_ecs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NextLegacy/rust_ecs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNextLegacy%2Frust_ecs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNextLegacy%2Frust_ecs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d96653b5fb9d71a3b0ca5c38c89dfda336526050
[INFO] checking NextLegacy/rust_ecs against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNextLegacy%2Frust_ecs" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NextLegacy/rust_ecs
[INFO] finished tweaking git repo https://github.com/NextLegacy/rust_ecs
[INFO] tweaked toml for git repo https://github.com/NextLegacy/rust_ecs written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NextLegacy/rust_ecs on toolchain 507271bc119683008ec719ecee48814e8ac86c65
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NextLegacy/rust_ecs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f6730d0e126e2df1633453af096f9b457728efbc3413febd996e073d7037b67c
[INFO] running `Command { std: "docker" "start" "-a" "f6730d0e126e2df1633453af096f9b457728efbc3413febd996e073d7037b67c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f6730d0e126e2df1633453af096f9b457728efbc3413febd996e073d7037b67c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f6730d0e126e2df1633453af096f9b457728efbc3413febd996e073d7037b67c", kill_on_drop: false }`
[INFO] [stdout] f6730d0e126e2df1633453af096f9b457728efbc3413febd996e073d7037b67c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4620208df8bef5366b2a833b8bd7ed57def2b1247f56122d3a49a2af0bcee661
[INFO] running `Command { std: "docker" "start" "-a" "4620208df8bef5366b2a833b8bd7ed57def2b1247f56122d3a49a2af0bcee661", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking serde v1.0.210
[INFO] [stderr]     Checking serde_json v1.0.128
[INFO] [stderr]     Checking ecs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Any` and `ops::Deref`
[INFO] [stdout]  --> src/ecs.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::{Any, TypeId}, collections::HashMap, iter, ops::Deref};
[INFO] [stdout]   |                 ^^^                                       ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/ecs/system.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num`
[INFO] [stdout]  --> src/ecs/entity.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::num;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ptr::NonNull`
[INFO] [stdout]  --> src/data_structures/sparse_set.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ptr::NonNull};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Index`
[INFO] [stdout]  --> src/data_structures/type_erased_vec.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{alloc::GlobalAlloc, ops::Index, ptr::NonNull};
[INFO] [stdout]   |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any` and `ops::Deref`
[INFO] [stdout]  --> src/ecs.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::{Any, TypeId}, collections::HashMap, iter, ops::Deref};
[INFO] [stdout]   |                 ^^^                                       ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/ecs/system.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num`
[INFO] [stdout]  --> src/ecs/entity.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::num;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ptr::NonNull`
[INFO] [stdout]  --> src/data_structures/sparse_set.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ptr::NonNull};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Index`
[INFO] [stdout]  --> src/data_structures/type_erased_vec.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{alloc::GlobalAlloc, ops::Index, ptr::NonNull};
[INFO] [stdout]   |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Component`
[INFO] [stdout]  --> src/ecs.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use component::{Component, ComponentTypeUUID, ComponentUUID};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ecs::system::System`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ecs::system::System;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]  --> src/ecs/system.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn start       (&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]   |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]   --> src/ecs/system.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn update      (&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]   --> src/ecs/system.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn fixed_update(&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]   --> src/ecs/system.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn render      (&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/ecs.rs:281:45
[INFO] [stdout]     |
[INFO] [stdout] 281 |         self.storage.query::<(&T,)>().map(|(entity, component)| {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/main.rs:22:51
[INFO] [stdout]    |
[INFO] [stdout] 22 |         ecs.iter_components_mut::<A>().for_each(|(entity, a)| {
[INFO] [stdout]    |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `y` is never read
[INFO] [stdout]   --> src/main.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct B { y: f32 }
[INFO] [stdout]    |            -   ^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `z` is never read
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct C { z: f32 }
[INFO] [stdout]    |            -   ^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `benchmark` is never used
[INFO] [stdout]   --> src/main.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn benchmark(action: impl FnOnce()) -> std::time::Duration
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `benchmark_main` is never used
[INFO] [stdout]   --> src/main.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn benchmark_main()
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stress_test` is never used
[INFO] [stdout]    --> src/main.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn stress_test() -> u32
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ECSStorage` is never constructed
[INFO] [stdout]   --> src/ecs.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ECSStorage
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ECS` is never constructed
[INFO] [stdout]   --> src/ecs.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ECS
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ecs.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl ECSStorage
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  33 | {
[INFO] [stdout]  34 |     pub fn new() -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn create_entity(&mut self) -> EntityUUID
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn remove_entity(&mut self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn has_entity(&self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn add_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn remove_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn get_component<T>(&self, uuid: EntityUUID) -> Option<&T> where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn iter_components<T: 'static>(&self) -> Box<dyn Iterator<Item = (usize, &T)> + '_>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn iter_components_mut<T: 'static>(&mut self) -> Box<dyn Iterator<Item = (usize, &mut T)> + '_>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn query<'a, T: ComponentQuery<'a>>(&'a self) -> T::Iter {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn query_mut<'a, T: ComponentQueryMut<'a>>(&'a mut self) -> T::Iter {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ecs.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ECS
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 177 | {
[INFO] [stdout] 178 |     pub fn new() -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn create_entity(&mut self) -> EntityUUID
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn remove_entity(&mut self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn has_entity(&self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn add_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn remove_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn get_component<T>(&self, uuid: EntityUUID) -> Option<&T> where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn iter_components<T: 'static>(&self) -> impl Iterator<Item = (usize, &T)>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn iter_components_mut<T: 'static>(&mut self) -> impl Iterator<Item = (usize, &mut T)>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn entities_count(&self) -> usize
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn storage(&self) -> &ECSStorage
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn storage_mut(&mut self) -> &mut ECSStorage
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn register_system<TSystem>(&mut self) where TSystem: System + 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn start(&mut self)
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn update(&mut self)
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn fixed_update(&mut self)
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn render(&mut self)
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn serialize<T: serde::Serialize + 'static>(&self) -> Result<String, serde_json::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ComponentUUID` is never used
[INFO] [stdout]  --> src/ecs/component.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type ComponentUUID = usize;
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ComponentTypeUUID` is never used
[INFO] [stdout]  --> src/ecs/component.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub type ComponentTypeUUID = usize;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Component` is never used
[INFO] [stdout]  --> src/ecs/component.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait Component: 'static 
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntityComponent` is never constructed
[INFO] [stdout]  --> src/ecs/component.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct EntityComponent<T> where T: Component
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `System` is never used
[INFO] [stdout]  --> src/ecs/system.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait System
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntityUUID` is never used
[INFO] [stdout]  --> src/ecs/entity.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type EntityUUID = usize;
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentQuery` is never used
[INFO] [stdout]  --> src/ecs/query.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait ComponentQuery<'a> {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentQueryMut` is never used
[INFO] [stdout]   --> src/ecs/query.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait ComponentQueryMut<'a> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpraseDenseValueIndex` is never constructed
[INFO] [stdout]  --> src/data_structures/sparse_set.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SpraseDenseValueIndex
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_structures/sparse_set.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl SpraseDenseValueIndex
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 12 | {
[INFO] [stdout] 13 |     pub fn new(sparse_page: usize, sparse_index: usize) -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseSet` is never constructed
[INFO] [stdout]   --> src/data_structures/sparse_set.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct SparseSet<const PAGE_SIZE: usize>
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/data_structures/sparse_set.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl<const PAGE_SIZE: usize> SparseSet<PAGE_SIZE>
[INFO] [stdout]     | ------------------------------------------------- associated items in this implementation
[INFO] [stdout]  31 | {
[INFO] [stdout]  32 |     pub fn new<T>() -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     fn map_index(index: usize) -> (usize, usize)
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn emplace(&mut self, index: usize) -> bool
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn set<T>(&mut self, index: usize, value: T)
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get<T>(&self, index: usize) -> Option<&T>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn remove(&mut self, index: usize)
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn iter<T: 'static>(&self) -> impl Iterator<Item = (usize, &T)>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn iter_mut<T: 'static>(&mut self) -> impl Iterator<Item = (usize, &mut T)>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn len(&self) -> usize
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BitSet` is never constructed
[INFO] [stdout]  --> src/data_structures/bit_set.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct BitSet
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Component`
[INFO] [stdout]  --> src/ecs.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use component::{Component, ComponentTypeUUID, ComponentUUID};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ecs::system::System`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ecs::system::System;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/data_structures/bit_set.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl BitSet
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  7 | {
[INFO] [stdout]  8 |     pub fn new() -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn with_capacity(capacity: usize) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn set(&mut self, index: usize)
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn clear(&mut self, index: usize)
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, index: usize) -> bool
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn clear_all(&mut self)
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn len(&self) -> usize
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn data(&self) -> &[usize]
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]  --> src/ecs/system.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn start       (&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]   |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]   --> src/ecs/system.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn update      (&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]   --> src/ecs/system.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn fixed_update(&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ecs`
[INFO] [stdout]   --> src/ecs/system.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn render      (&self, ecs: &mut ECSStorage) { }
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ecs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/data_structures/type_erased_vec.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl TypeErasedVec {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn emplace(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn get_typed<T>(&self, index: usize) -> &T {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn get_typed_mut<T>(&mut self, index: usize) -> &mut T {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn remove_swap_with_last(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn as_slice_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn as_typed_slice<T>(&self) -> &[T] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn as_typed_slice_mut<T>(&mut self) -> &mut [T] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn as_ptr(&self) -> *const u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn as_mut_ptr(&mut self) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn as_typed_ptr<T>(&self) -> *const T {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn as_typed_mut_ptr<T>(&mut self) -> *mut T {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn is_empty(&self) -> bool               { self.len() == 0 }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 136 |     pub fn capacity(&self) -> usize              { self.capacity }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 137 |     pub fn layout  (&self) -> std::alloc::Layout { self.layout   }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 138 |
[INFO] [stdout] 139 |     pub fn iter(&self) -> std::slice::Iter<'_, u8> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn iter_typed<T>(&self) -> std::slice::Iter<'_, T> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn iter_typed_mut<T>(&mut self) -> std::slice::IterMut<'_, T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/ecs.rs:281:45
[INFO] [stdout]     |
[INFO] [stdout] 281 |         self.storage.query::<(&T,)>().map(|(entity, component)| {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/main.rs:22:51
[INFO] [stdout]    |
[INFO] [stdout] 22 |         ecs.iter_components_mut::<A>().for_each(|(entity, a)| {
[INFO] [stdout]    |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         for i in 0..1000
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 189 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     for i in 0..100000
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `y` is never read
[INFO] [stdout]   --> src/main.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct B { y: f32 }
[INFO] [stdout]    |            -   ^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `z` is never read
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct C { z: f32 }
[INFO] [stdout]    |            -   ^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `benchmark` is never used
[INFO] [stdout]   --> src/main.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn benchmark(action: impl FnOnce()) -> std::time::Duration
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `benchmark_main` is never used
[INFO] [stdout]   --> src/main.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn benchmark_main()
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stress_test` is never used
[INFO] [stdout]    --> src/main.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn stress_test() -> u32
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ECSStorage` is never constructed
[INFO] [stdout]   --> src/ecs.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ECSStorage
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ECS` is never constructed
[INFO] [stdout]   --> src/ecs.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ECS
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ecs.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl ECSStorage
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  33 | {
[INFO] [stdout]  34 |     pub fn new() -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn create_entity(&mut self) -> EntityUUID
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn remove_entity(&mut self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn has_entity(&self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn add_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn remove_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn get_component<T>(&self, uuid: EntityUUID) -> Option<&T> where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn iter_components<T: 'static>(&self) -> Box<dyn Iterator<Item = (usize, &T)> + '_>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn iter_components_mut<T: 'static>(&mut self) -> Box<dyn Iterator<Item = (usize, &mut T)> + '_>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn query<'a, T: ComponentQuery<'a>>(&'a self) -> T::Iter {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn query_mut<'a, T: ComponentQueryMut<'a>>(&'a mut self) -> T::Iter {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ecs.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ECS
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 177 | {
[INFO] [stdout] 178 |     pub fn new() -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn create_entity(&mut self) -> EntityUUID
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn remove_entity(&mut self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn has_entity(&self, uuid: EntityUUID) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn add_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn remove_component<T>(&mut self, uuid: EntityUUID) where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn get_component<T>(&self, uuid: EntityUUID) -> Option<&T> where T: 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn iter_components<T: 'static>(&self) -> impl Iterator<Item = (usize, &T)>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn iter_components_mut<T: 'static>(&mut self) -> impl Iterator<Item = (usize, &mut T)>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn entities_count(&self) -> usize
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn storage(&self) -> &ECSStorage
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn storage_mut(&mut self) -> &mut ECSStorage
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn register_system<TSystem>(&mut self) where TSystem: System + 'static
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn start(&mut self)
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn update(&mut self)
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn fixed_update(&mut self)
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn render(&mut self)
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn serialize<T: serde::Serialize + 'static>(&self) -> Result<String, serde_json::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ComponentUUID` is never used
[INFO] [stdout]  --> src/ecs/component.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type ComponentUUID = usize;
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ComponentTypeUUID` is never used
[INFO] [stdout]  --> src/ecs/component.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub type ComponentTypeUUID = usize;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Component` is never used
[INFO] [stdout]  --> src/ecs/component.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait Component: 'static 
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntityComponent` is never constructed
[INFO] [stdout]  --> src/ecs/component.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct EntityComponent<T> where T: Component
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `System` is never used
[INFO] [stdout]  --> src/ecs/system.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait System
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntityUUID` is never used
[INFO] [stdout]  --> src/ecs/entity.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type EntityUUID = usize;
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentQuery` is never used
[INFO] [stdout]  --> src/ecs/query.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait ComponentQuery<'a> {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ComponentQueryMut` is never used
[INFO] [stdout]   --> src/ecs/query.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait ComponentQueryMut<'a> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpraseDenseValueIndex` is never constructed
[INFO] [stdout]  --> src/data_structures/sparse_set.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SpraseDenseValueIndex
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_structures/sparse_set.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl SpraseDenseValueIndex
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 12 | {
[INFO] [stdout] 13 |     pub fn new(sparse_page: usize, sparse_index: usize) -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseSet` is never constructed
[INFO] [stdout]   --> src/data_structures/sparse_set.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct SparseSet<const PAGE_SIZE: usize>
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/data_structures/sparse_set.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl<const PAGE_SIZE: usize> SparseSet<PAGE_SIZE>
[INFO] [stdout]     | ------------------------------------------------- associated items in this implementation
[INFO] [stdout]  31 | {
[INFO] [stdout]  32 |     pub fn new<T>() -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     fn map_index(index: usize) -> (usize, usize)
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn emplace(&mut self, index: usize) -> bool
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn set<T>(&mut self, index: usize, value: T)
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get<T>(&self, index: usize) -> Option<&T>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn remove(&mut self, index: usize)
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn iter<T: 'static>(&self) -> impl Iterator<Item = (usize, &T)>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn iter_mut<T: 'static>(&mut self) -> impl Iterator<Item = (usize, &mut T)>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn len(&self) -> usize
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BitSet` is never constructed
[INFO] [stdout]  --> src/data_structures/bit_set.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct BitSet
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/data_structures/bit_set.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl BitSet
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  7 | {
[INFO] [stdout]  8 |     pub fn new() -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn with_capacity(capacity: usize) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn set(&mut self, index: usize)
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn clear(&mut self, index: usize)
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, index: usize) -> bool
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn clear_all(&mut self)
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn len(&self) -> usize
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn data(&self) -> &[usize]
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/data_structures/type_erased_vec.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl TypeErasedVec {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn emplace(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn get_typed<T>(&self, index: usize) -> &T {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn get_typed_mut<T>(&mut self, index: usize) -> &mut T {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn remove_swap_with_last(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn as_slice_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn as_typed_slice<T>(&self) -> &[T] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn as_typed_slice_mut<T>(&mut self) -> &mut [T] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn as_ptr(&self) -> *const u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn as_mut_ptr(&mut self) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn as_typed_ptr<T>(&self) -> *const T {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn as_typed_mut_ptr<T>(&mut self) -> *mut T {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn is_empty(&self) -> bool               { self.len() == 0 }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 136 |     pub fn capacity(&self) -> usize              { self.capacity }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 137 |     pub fn layout  (&self) -> std::alloc::Layout { self.layout   }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 138 |
[INFO] [stdout] 139 |     pub fn iter(&self) -> std::slice::Iter<'_, u8> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn iter_typed<T>(&self) -> std::slice::Iter<'_, T> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn iter_typed_mut<T>(&mut self) -> std::slice::IterMut<'_, T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.02s
[INFO] running `Command { std: "docker" "inspect" "4620208df8bef5366b2a833b8bd7ed57def2b1247f56122d3a49a2af0bcee661", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4620208df8bef5366b2a833b8bd7ed57def2b1247f56122d3a49a2af0bcee661", kill_on_drop: false }`
[INFO] [stdout] 4620208df8bef5366b2a833b8bd7ed57def2b1247f56122d3a49a2af0bcee661
