Trait ReactiveEntityManager

Source
pub trait ReactiveEntityManager:
    Send
    + Sync
    + Lifecycle {
Show 31 methods // Required methods fn has(&self, id: Uuid) -> bool; fn get(&self, id: Uuid) -> Option<ReactiveEntity>; fn get_by_label(&self, label: &str) -> Option<ReactiveEntity>; fn get_by_label_with_params( &self, label: &str, ) -> Option<(ReactiveEntity, HashMap<String, String>)>; fn get_all(&self) -> Vec<ReactiveEntity>; fn get_by_type(&self, ty: &EntityTypeId) -> Vec<ReactiveEntity>; fn get_by_component( &self, component_ty: &ComponentTypeId, ) -> Vec<ReactiveEntity>; fn get_by_behaviour( &self, behaviour_ty: &BehaviourTypeId, ) -> Vec<ReactiveEntity>; fn get_by_namespace(&self, namespace: &str) -> Vec<ReactiveEntity>; fn get_ids(&self) -> Vec<Uuid>; fn count(&self) -> usize; fn count_by_type(&self, ty: &EntityTypeId) -> usize; fn count_by_component(&self, component_ty: &ComponentTypeId) -> usize; fn count_by_behaviour(&self, behaviour_ty: &BehaviourTypeId) -> usize; fn create_reactive_entity( &self, ty: &EntityTypeId, properties: PropertyInstances, ) -> Result<ReactiveEntity, ReactiveEntityCreationError>; fn create_with_id( &self, ty: &EntityTypeId, id: Uuid, properties: PropertyInstances, ) -> Result<ReactiveEntity, ReactiveEntityCreationError>; fn create_reactive_instance( &self, entity_instance: EntityInstance, ) -> Result<ReactiveEntity, ReactiveEntityCreationError>; fn register_reactive_instance( &self, reactive_entity: ReactiveEntity, ) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>; fn register_or_merge_reactive_instance( &self, reactive_entity: ReactiveEntity, ) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>; fn add_component( &self, id: Uuid, component_ty: &ComponentTypeId, ) -> Result<(), ReactiveEntityComponentAddError>; fn remove_component(&self, id: Uuid, component_ty: &ComponentTypeId); fn add_property( &self, id: Uuid, property_name: &str, mutability: Mutability, value: Value, ) -> Result<(), ReactiveEntityPropertyAddError>; fn remove_property( &self, id: Uuid, property_name: &str, ) -> Result<(), ReactiveEntityPropertyRemoveError>; fn add_behaviour_to_all_entity_instances( &self, entity_behaviour_ty: &EntityBehaviourTypeId, ); fn add_behaviour_to_all_entity_components( &self, component_behaviour_ty: &ComponentBehaviourTypeId, ); fn delete(&self, id: Uuid) -> bool; fn unregister_reactive_instance(&self, id: Uuid) -> bool; fn handle_component_added_events(&self); fn handle_component_removed_events(&self); fn handle_property_added_events(&self); fn handle_property_removed_events(&self);
}

Required Methods§

Source

fn has(&self, id: Uuid) -> bool

Returns true, if an entity instance exists with the given UUID.

Source

fn get(&self, id: Uuid) -> Option<ReactiveEntity>

Returns the reactive entity instance with the given UUID or None.

Source

fn get_by_label(&self, label: &str) -> Option<ReactiveEntity>

Returns the reactive entity instance that matches the given label or None.

Source

fn get_by_label_with_params( &self, label: &str, ) -> Option<(ReactiveEntity, HashMap<String, String>)>

Returns the reactive entity instance and the matched path parameters that matches the given label or None. /io/reactive-graph/local/users/:user_id /io/reactive-graph/local/users/PeterPenacka returns: (instance, {“user_id”: “PeterPenacka”})

Source

fn get_all(&self) -> Vec<ReactiveEntity>

Returns all registered reactive entity instances.

Source

fn get_by_type(&self, ty: &EntityTypeId) -> Vec<ReactiveEntity>

Returns all reactive entity instances of the given type.

Source

fn get_by_component( &self, component_ty: &ComponentTypeId, ) -> Vec<ReactiveEntity>

Returns all reactive entity instances of the given type which are of the given component..

Source

fn get_by_behaviour( &self, behaviour_ty: &BehaviourTypeId, ) -> Vec<ReactiveEntity>

Returns all reactive entity instances of the given type which behaves as the given behaviour.

Source

fn get_by_namespace(&self, namespace: &str) -> Vec<ReactiveEntity>

Returns all reactive entity instances of the given namespace.

Source

fn get_ids(&self) -> Vec<Uuid>

Returns the ids of all registered reactive entity instances.

Source

fn count(&self) -> usize

Returns the count of registered reactive entity instances.

Source

fn count_by_type(&self, ty: &EntityTypeId) -> usize

Returns the count of registered reactive entity instances of the given type.

Source

fn count_by_component(&self, component_ty: &ComponentTypeId) -> usize

Returns the count of registered reactive entity instances which are of the given component.

Source

fn count_by_behaviour(&self, behaviour_ty: &BehaviourTypeId) -> usize

Returns the count of registered reactive entity instances which behaves as the given behaviour.

Source

fn create_reactive_entity( &self, ty: &EntityTypeId, properties: PropertyInstances, ) -> Result<ReactiveEntity, ReactiveEntityCreationError>

Creates a new reactive entity instance of the given type. The reactive instance will be initialized with the given properties and values. A random id will be generated.

Source

fn create_with_id( &self, ty: &EntityTypeId, id: Uuid, properties: PropertyInstances, ) -> Result<ReactiveEntity, ReactiveEntityCreationError>

Creates a new reactive entity instance of the given type, with the given id and initialized with the given properties and values.

Source

fn create_reactive_instance( &self, entity_instance: EntityInstance, ) -> Result<ReactiveEntity, ReactiveEntityCreationError>

Creates a reactive entity instance from the given non-reactive entity instance. The reactive entity instance will be registered.

Source

fn register_reactive_instance( &self, reactive_entity: ReactiveEntity, ) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>

Registers a reactive entity instance and applies components and behaviours.

Source

fn register_or_merge_reactive_instance( &self, reactive_entity: ReactiveEntity, ) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>

Registers a reactive entity instance if and only if the given instance doesn’t exist.

No properties are merged if the given entity instance already exists.

Source

fn add_component( &self, id: Uuid, component_ty: &ComponentTypeId, ) -> Result<(), ReactiveEntityComponentAddError>

Adds the component with the given name to the entity instance with the given id.

Source

fn remove_component(&self, id: Uuid, component_ty: &ComponentTypeId)

Removes the component with the given name from the entity instance with the given id.

Source

fn add_property( &self, id: Uuid, property_name: &str, mutability: Mutability, value: Value, ) -> Result<(), ReactiveEntityPropertyAddError>

Adds the property with the given name and initial value to the entity instance with the given id.

Source

fn remove_property( &self, id: Uuid, property_name: &str, ) -> Result<(), ReactiveEntityPropertyRemoveError>

Removes the property with the given name from the entity instance with the given id.

Source

fn add_behaviour_to_all_entity_instances( &self, entity_behaviour_ty: &EntityBehaviourTypeId, )

Adds the given behaviour to all instances of the given entity type.

Source

fn add_behaviour_to_all_entity_components( &self, component_behaviour_ty: &ComponentBehaviourTypeId, )

Adds the given behaviour to all instances of the given entity type.

Source

fn delete(&self, id: Uuid) -> bool

Source

fn unregister_reactive_instance(&self, id: Uuid) -> bool

Unregisters the reactive entity instance. Also removes all behaviours. If there are any references to the reactive entity instance, their reactive streams still work but the applied behaviours are gone.

Source

fn handle_component_added_events(&self)

Source

fn handle_component_removed_events(&self)

Source

fn handle_property_added_events(&self)

Source

fn handle_property_removed_events(&self)

Trait Implementations§

Source§

impl Injectable for dyn ReactiveEntityManager + Sync + Send

Implementors§