summaryrefslogtreecommitdiff
path: root/engine-ecs/src/util/array_vec.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-07-24 22:32:21 +0200
committerHampusM <hampus@hampusmat.com>2026-07-26 19:44:20 +0200
commit9226356b7b54c4c5b036b6fee00bba376245c5f3 (patch)
treea693c9fba2b9d59370ce744784ee1bdf2977614d /engine-ecs/src/util/array_vec.rs
parentd979565961b1e7770807663d89e3438b12c1fd54 (diff)
feat(engine-ecs): add traversal query termHEADmaster
Diffstat (limited to 'engine-ecs/src/util/array_vec.rs')
-rw-r--r--engine-ecs/src/util/array_vec.rs26
1 files changed, 25 insertions, 1 deletions
diff --git a/engine-ecs/src/util/array_vec.rs b/engine-ecs/src/util/array_vec.rs
index 5d0aac9..5863507 100644
--- a/engine-ecs/src/util/array_vec.rs
+++ b/engine-ecs/src/util/array_vec.rs
@@ -57,9 +57,23 @@ impl<Item, const CAPACITY: usize> ArrayVec<Item, CAPACITY>
}
}
+impl<Item, const CAPACITY: usize> FromIterator<Item> for ArrayVec<Item, CAPACITY>
+{
+ fn from_iter<IterT: IntoIterator<Item = Item>>(iter: IterT) -> Self
+ {
+ let mut new = Self::default();
+
+ for item in iter {
+ new.push(item);
+ }
+
+ new
+ }
+}
+
impl<Item, const CAPACITY: usize> Extend<Item> for ArrayVec<Item, CAPACITY>
{
- fn extend<IntoIter: IntoIterator<Item = Item>>(&mut self, iter: IntoIter)
+ fn extend<Iter: IntoIterator<Item = Item>>(&mut self, iter: Iter)
{
for item in iter {
self.push(item);
@@ -116,6 +130,16 @@ impl<Item, const CAPACITY: usize> Default for ArrayVec<Item, CAPACITY>
}
}
+impl<Item, const CAPACITY: usize> Clone for ArrayVec<Item, CAPACITY>
+where
+ Item: Clone,
+{
+ fn clone(&self) -> Self
+ {
+ Self::from_iter(self.iter().cloned())
+ }
+}
+
impl<Item, const CAPACITY: usize> Drop for ArrayVec<Item, CAPACITY>
{
fn drop(&mut self)