summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock26
-rw-r--r--ecs/Cargo.toml1
-rw-r--r--ecs/src/component/storage.rs3
-rw-r--r--ecs/src/lib.rs3
-rw-r--r--ecs/src/query/options.rs3
-rw-r--r--ecs/src/system/stateful.rs2
6 files changed, 33 insertions, 5 deletions
diff --git a/Cargo.lock b/Cargo.lock
index d8067f0..03d9d89 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -18,6 +18,12 @@ dependencies = [
]
[[package]]
+name = "allocator-api2"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
+
+[[package]]
name = "anes"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -257,6 +263,7 @@ version = "0.1.0"
dependencies = [
"criterion",
"ecs-macros",
+ "hashbrown 0.15.2",
"linkme",
"paste",
"seq-macro",
@@ -323,6 +330,12 @@ dependencies = [
]
[[package]]
+name = "foldhash"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f"
+
+[[package]]
name = "game-newest"
version = "0.1.0"
dependencies = [
@@ -385,6 +398,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
[[package]]
+name = "hashbrown"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash",
+]
+
+[[package]]
name = "hermit-abi"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -412,7 +436,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
dependencies = [
"equivalent",
- "hashbrown",
+ "hashbrown 0.14.3",
]
[[package]]
diff --git a/ecs/Cargo.toml b/ecs/Cargo.toml
index 3bf3b19..68d74f9 100644
--- a/ecs/Cargo.toml
+++ b/ecs/Cargo.toml
@@ -12,6 +12,7 @@ paste = "1.0.14"
thiserror = "1.0.49"
tracing = { version = "0.1.39", optional = true }
linkme = "0.3.29"
+hashbrown = "0.15.2"
ecs-macros = { path = "../ecs-macros" }
util-macros = { path = "../util-macros" }
diff --git a/ecs/src/component/storage.rs b/ecs/src/component/storage.rs
index 54fa834..dcf0181 100644
--- a/ecs/src/component/storage.rs
+++ b/ecs/src/component/storage.rs
@@ -1,10 +1,11 @@
use std::any::type_name;
use std::borrow::Borrow;
use std::cell::RefCell;
-use std::collections::{HashMap, HashSet};
use std::slice::Iter as SliceIter;
use std::vec::IntoIter as OwnedVecIter;
+use hashbrown::{HashMap, HashSet};
+
use crate::archetype::Id as ArchetypeId;
use crate::component::{
Component,
diff --git a/ecs/src/lib.rs b/ecs/src/lib.rs
index 3926344..43a00f1 100644
--- a/ecs/src/lib.rs
+++ b/ecs/src/lib.rs
@@ -2,12 +2,13 @@
use std::any::{type_name, TypeId};
use std::cell::RefCell;
-use std::collections::HashMap;
use std::fmt::Debug;
use std::mem::ManuallyDrop;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
+use hashbrown::HashMap;
+
use crate::actions::Action;
use crate::component::storage::Storage as ComponentStorage;
use crate::component::{
diff --git a/ecs/src/query/options.rs b/ecs/src/query/options.rs
index ead0ac7..772d091 100644
--- a/ecs/src/query/options.rs
+++ b/ecs/src/query/options.rs
@@ -1,6 +1,7 @@
-use std::collections::HashSet;
use std::marker::PhantomData;
+use hashbrown::HashSet;
+
use crate::component::Component;
use crate::EntityComponent;
diff --git a/ecs/src/system/stateful.rs b/ecs/src/system/stateful.rs
index 5eae1da..80ac346 100644
--- a/ecs/src/system/stateful.rs
+++ b/ecs/src/system/stateful.rs
@@ -1,7 +1,7 @@
use std::any::{Any, TypeId};
-use std::collections::HashMap;
use std::panic::{RefUnwindSafe, UnwindSafe};
+use hashbrown::HashMap;
use seq_macro::seq;
use crate::component::Component;