Trait EntityComponentBehaviourRegistry

Source
pub trait EntityComponentBehaviourRegistry: Send + Sync {
    // Required methods
    fn register<'life0, 'async_trait>(
        &'life0 self,
        component_behaviour_ty: ComponentBehaviourTypeId,
        factory: Arc<dyn BehaviourFactory<Uuid, ReactiveEntity> + Send + Sync>,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn unregister<'life0, 'life1, 'async_trait>(
        &'life0 self,
        component_behaviour_ty: &'life1 ComponentBehaviourTypeId,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;

    // Provided methods
    fn register_all<'life0, 'life1, 'async_trait>(
        &'life0 self,
        factories: &'life1 BehaviourFactories<Uuid, ReactiveEntity>,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn unregister_all<'life0, 'life1, 'async_trait>(
        &'life0 self,
        tys: &'life1 ComponentBehaviourTypeIds,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}

Required Methods§

Source

fn register<'life0, 'async_trait>( &'life0 self, component_behaviour_ty: ComponentBehaviourTypeId, factory: Arc<dyn BehaviourFactory<Uuid, ReactiveEntity> + Send + Sync>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Registers a factory for creating entity component behaviours. If an entity instance has the given component then the given behaviour is applied. The behaviour will be created using the given EntityBehaviourCreator.

Source

fn unregister<'life0, 'life1, 'async_trait>( &'life0 self, component_behaviour_ty: &'life1 ComponentBehaviourTypeId, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Unregisters an entity component behaviour factory.

Provided Methods§

Source

fn register_all<'life0, 'life1, 'async_trait>( &'life0 self, factories: &'life1 BehaviourFactories<Uuid, ReactiveEntity>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn unregister_all<'life0, 'life1, 'async_trait>( &'life0 self, tys: &'life1 ComponentBehaviourTypeIds, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Unregisters all factories with the given entity component behaviour types.

Implementors§