summaryrefslogtreecommitdiff
path: root/ecs/src/sole.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ecs/src/sole.rs')
-rw-r--r--ecs/src/sole.rs22
1 files changed, 6 insertions, 16 deletions
diff --git a/ecs/src/sole.rs b/ecs/src/sole.rs
index 084a06b..1cce419 100644
--- a/ecs/src/sole.rs
+++ b/ecs/src/sole.rs
@@ -5,12 +5,11 @@ use std::ops::{Deref, DerefMut};
use std::sync::{Arc, Weak};
use crate::lock::{Lock, WriteGuard};
-use crate::system::{NoInitParamFlag, Param as SystemParam, System};
-use crate::type_name::TypeName;
+use crate::system::{Param as SystemParam, System};
use crate::World;
/// A type which has a single instance and is shared globally.
-pub trait Sole: Any + TypeName
+pub trait Sole: Any
{
fn drop_last(&self) -> bool;
@@ -40,14 +39,6 @@ impl Debug for dyn Sole
}
}
-impl TypeName for Box<dyn Sole>
-{
- fn type_name(&self) -> &'static str
- {
- self.as_ref().type_name()
- }
-}
-
/// Holds a reference to a globally shared singleton value.
#[derive(Debug)]
pub struct Single<'world, SoleT: Sole>
@@ -88,11 +79,10 @@ where
}
}
-unsafe impl<'world, SoleT> SystemParam<'world> for Single<'world, SoleT>
+impl<'world, SoleT> SystemParam<'world> for Single<'world, SoleT>
where
SoleT: Sole,
{
- type Flags = NoInitParamFlag;
type Input = ();
fn initialize<SystemImpl>(
@@ -115,7 +105,7 @@ where
}
}
-impl<'world, SoleT> Deref for Single<'world, SoleT>
+impl<SoleT> Deref for Single<'_, SoleT>
where
SoleT: Sole,
{
@@ -127,7 +117,7 @@ where
}
}
-impl<'world, SoleT> DerefMut for Single<'world, SoleT>
+impl<SoleT> DerefMut for Single<'_, SoleT>
where
SoleT: Sole,
{
@@ -174,7 +164,7 @@ where
_pd: PhantomData<&'weak_ref SoleT>,
}
-impl<'weak_ref, SoleT> SingleRef<'weak_ref, SoleT>
+impl<SoleT> SingleRef<'_, SoleT>
where
SoleT: Sole,
{