pub enum RelationshipAccessorInitializer {
Relationship {
entity_field_offset: usize,
linked_spawn: bool,
allow_self_referential: bool,
relationship_target_getter: Arc<dyn Fn(&Components) -> Option<ComponentId>>,
},
RelationshipTarget {
iter: for<'a> unsafe fn(Ptr<'a>) -> Box<dyn Iterator<Item = Entity> + 'a>,
linked_spawn: bool,
allow_self_referential: bool,
relationship_getter: Arc<dyn Fn(&Components) -> Option<ComponentId>>,
},
}Expand description
Initializer enum for RelationshipAccessor that allows to configure relationship for dynamic components.
Variants§
Relationship
Describes a Relationship component.
Fields
entity_field_offset: usizeOffset of the field containing Entity from the base of the component.
Dynamic equivalent of Relationship::get.
linked_spawn: boolValue of RelationshipTarget::LINKED_SPAWN for the Relationship::RelationshipTarget of this Relationship.
allow_self_referential: boolValue of Relationship::ALLOW_SELF_REFERENTIAL of this Relationship.
relationship_target_getter: Arc<dyn Fn(&Components) -> Option<ComponentId>>Getter for ComponentId of the RelationshipTarget counterpart.
Should return None if RelationshipTarget isn’t registered yet.
RelationshipTarget
Describes a RelationshipTarget component.
Fields
iter: for<'a> unsafe fn(Ptr<'a>) -> Box<dyn Iterator<Item = Entity> + 'a>Function that returns an iterator over all Entitys of this RelationshipTarget’s collection.
Dynamic equivalent of RelationshipTarget::iter.
§Safety
Passed pointer must point to the value of the same component as the one that this accessor was registered to.
linked_spawn: boolValue of RelationshipTarget::LINKED_SPAWN of this RelationshipTarget.
allow_self_referential: boolValue of Relationship::ALLOW_SELF_REFERENTIAL for the Relationship of this RelationshipTarget.
relationship_getter: Arc<dyn Fn(&Components) -> Option<ComponentId>>Getter for ComponentId of the Relationship counterpart.
Should return None if Relationship isn’t registered yet.
Trait Implementations§
Source§impl Clone for RelationshipAccessorInitializer
impl Clone for RelationshipAccessorInitializer
Source§fn clone(&self) -> RelationshipAccessorInitializer
fn clone(&self) -> RelationshipAccessorInitializer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for RelationshipAccessorInitializer
impl !RefUnwindSafe for RelationshipAccessorInitializer
impl !Send for RelationshipAccessorInitializer
impl !Sync for RelationshipAccessorInitializer
impl Unpin for RelationshipAccessorInitializer
impl UnsafeUnpin for RelationshipAccessorInitializer
impl !UnwindSafe for RelationshipAccessorInitializer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.