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§
Sourcefn has(&self, id: Uuid) -> bool
fn has(&self, id: Uuid) -> bool
Returns true, if an entity instance exists with the given UUID.
Sourcefn get(&self, id: Uuid) -> Option<ReactiveEntity>
fn get(&self, id: Uuid) -> Option<ReactiveEntity>
Returns the reactive entity instance with the given UUID or None.
Sourcefn get_by_label(&self, label: &str) -> Option<ReactiveEntity>
fn get_by_label(&self, label: &str) -> Option<ReactiveEntity>
Returns the reactive entity instance that matches the given label or None.
Sourcefn get_by_label_with_params(
&self,
label: &str,
) -> Option<(ReactiveEntity, HashMap<String, String>)>
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”})
Sourcefn get_by_type(&self, ty: &EntityTypeId) -> Vec<ReactiveEntity>
fn get_by_type(&self, ty: &EntityTypeId) -> Vec<ReactiveEntity>
Returns all reactive entity instances of the given type.
Sourcefn get_by_component(
&self,
component_ty: &ComponentTypeId,
) -> Vec<ReactiveEntity>
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..
Sourcefn get_by_behaviour(
&self,
behaviour_ty: &BehaviourTypeId,
) -> Vec<ReactiveEntity>
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.
Sourcefn get_by_namespace(&self, namespace: &str) -> Vec<ReactiveEntity>
fn get_by_namespace(&self, namespace: &str) -> Vec<ReactiveEntity>
Returns all reactive entity instances of the given namespace.
Sourcefn count_by_type(&self, ty: &EntityTypeId) -> usize
fn count_by_type(&self, ty: &EntityTypeId) -> usize
Returns the count of registered reactive entity instances of the given type.
Sourcefn count_by_component(&self, component_ty: &ComponentTypeId) -> usize
fn count_by_component(&self, component_ty: &ComponentTypeId) -> usize
Returns the count of registered reactive entity instances which are of the given component.
Sourcefn count_by_behaviour(&self, behaviour_ty: &BehaviourTypeId) -> usize
fn count_by_behaviour(&self, behaviour_ty: &BehaviourTypeId) -> usize
Returns the count of registered reactive entity instances which behaves as the given behaviour.
Sourcefn create_reactive_entity(
&self,
ty: &EntityTypeId,
properties: PropertyInstances,
) -> Result<ReactiveEntity, ReactiveEntityCreationError>
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.
Sourcefn create_with_id(
&self,
ty: &EntityTypeId,
id: Uuid,
properties: PropertyInstances,
) -> Result<ReactiveEntity, ReactiveEntityCreationError>
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.
Sourcefn create_reactive_instance(
&self,
entity_instance: EntityInstance,
) -> Result<ReactiveEntity, ReactiveEntityCreationError>
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.
Sourcefn register_reactive_instance(
&self,
reactive_entity: ReactiveEntity,
) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>
fn register_reactive_instance( &self, reactive_entity: ReactiveEntity, ) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>
Registers a reactive entity instance and applies components and behaviours.
Sourcefn register_or_merge_reactive_instance(
&self,
reactive_entity: ReactiveEntity,
) -> Result<ReactiveEntity, ReactiveEntityRegistrationError>
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.
Sourcefn add_component(
&self,
id: Uuid,
component_ty: &ComponentTypeId,
) -> Result<(), ReactiveEntityComponentAddError>
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.
Sourcefn remove_component(&self, id: Uuid, component_ty: &ComponentTypeId)
fn remove_component(&self, id: Uuid, component_ty: &ComponentTypeId)
Removes the component with the given name from the entity instance with the given id.
Sourcefn add_property(
&self,
id: Uuid,
property_name: &str,
mutability: Mutability,
value: Value,
) -> Result<(), ReactiveEntityPropertyAddError>
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.
Sourcefn remove_property(
&self,
id: Uuid,
property_name: &str,
) -> Result<(), ReactiveEntityPropertyRemoveError>
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.
Sourcefn add_behaviour_to_all_entity_instances(
&self,
entity_behaviour_ty: &EntityBehaviourTypeId,
)
fn add_behaviour_to_all_entity_instances( &self, entity_behaviour_ty: &EntityBehaviourTypeId, )
Adds the given behaviour to all instances of the given entity type.
Sourcefn add_behaviour_to_all_entity_components(
&self,
component_behaviour_ty: &ComponentBehaviourTypeId,
)
fn add_behaviour_to_all_entity_components( &self, component_behaviour_ty: &ComponentBehaviourTypeId, )
Adds the given behaviour to all instances of the given entity type.
fn delete(&self, id: Uuid) -> bool
Sourcefn unregister_reactive_instance(&self, id: Uuid) -> bool
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.