summaryrefslogtreecommitdiff
path: root/ecs/src/util.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2024-08-16 19:30:06 +0200
committerHampusM <hampus@hampusmat.com>2024-08-16 19:30:06 +0200
commit77e0e30f6faedadae3ff57f2b3abb0548a6a27f1 (patch)
tree5c85b4e0ca0143fec487641152eee3ebe8dfd8af /ecs/src/util.rs
parent7da4b6acf1c08a87a709698d06a4237b38d0aa8a (diff)
fix(ecs): prevent nested queries causing panic
Diffstat (limited to 'ecs/src/util.rs')
-rw-r--r--ecs/src/util.rs50
1 files changed, 0 insertions, 50 deletions
diff --git a/ecs/src/util.rs b/ecs/src/util.rs
index 5ec21c7..f4f8632 100644
--- a/ecs/src/util.rs
+++ b/ecs/src/util.rs
@@ -1,6 +1,3 @@
-use std::cell::Ref;
-use std::ops::{Deref, DerefMut};
-
pub trait Sortable
{
type Item;
@@ -49,50 +46,3 @@ impl<Item> Sortable for Vec<Item>
self.sort_by_key(func)
}
}
-
-#[derive(Debug)]
-pub struct RefCellRefMap<'a, Value: 'a, MappedValue: 'a>
-{
- mapped_value: MappedValue,
- _refcell_ref: Ref<'a, Value>,
-}
-
-impl<'a, Value: 'a, MappedValue: 'a> RefCellRefMap<'a, Value, MappedValue>
-{
- pub fn new(
- refcell_ref: Ref<'a, Value>,
- map_fn: impl Fn(&'a Value) -> MappedValue,
- ) -> Self
- {
- // Convert the lifetime to 'static. This is necessary to make the compiler not
- // complain about refcell_ref being moved
- //
- // SAFETY: This is fine since we pass it to map_fn with the original lifetime 'a
- let val_ref = unsafe { &*(&*refcell_ref as *const Value) };
-
- let mapped_value = map_fn(val_ref);
-
- Self {
- mapped_value,
- _refcell_ref: refcell_ref,
- }
- }
-}
-
-impl<'a, Value: 'a, MappedValue: 'a> Deref for RefCellRefMap<'a, Value, MappedValue>
-{
- type Target = MappedValue;
-
- fn deref(&self) -> &Self::Target
- {
- &self.mapped_value
- }
-}
-
-impl<'a, Value: 'a, MappedValue: 'a> DerefMut for RefCellRefMap<'a, Value, MappedValue>
-{
- fn deref_mut(&mut self) -> &mut Self::Target
- {
- &mut self.mapped_value
- }
-}