summaryrefslogtreecommitdiff
path: root/ecs/src/component.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ecs/src/component.rs')
-rw-r--r--ecs/src/component.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/ecs/src/component.rs b/ecs/src/component.rs
index 35e5430..b0423c5 100644
--- a/ecs/src/component.rs
+++ b/ecs/src/component.rs
@@ -9,7 +9,7 @@ use crate::event::component::{
Removed as ComponentRemovedEvent,
};
use crate::lock::{Error as LockError, Lock, ReadGuard, WriteGuard};
-use crate::system::{ComponentRef, ComponentRefMut, Input as SystemInput};
+use crate::system::Input as SystemInput;
use crate::type_name::TypeName;
use crate::uid::Uid;
use crate::util::Array;
@@ -105,10 +105,12 @@ impl TypeName for Box<dyn Component>
impl<ComponentT> Component for Option<ComponentT>
where
ComponentT: Component,
+ for<'a> Option<ComponentT::Ref<'a>>: FromOptional<'a> + FromLockedOptional<'a>,
+ for<'a> Option<ComponentT::RefMut<'a>>: FromOptionalMut<'a> + FromLockedOptional<'a>,
{
type Component = ComponentT;
- type Ref<'component> = Option<ComponentRef<'component, ComponentT>>;
- type RefMut<'component> = Option<ComponentRefMut<'component, ComponentT>>;
+ type Ref<'component> = Option<ComponentT::Ref<'component>>;
+ type RefMut<'component> = Option<ComponentT::RefMut<'component>>;
fn id() -> Uid
{