32#define ecs_rule(world, ...)\
33 ecs_rule_init(world, &(ecs_filter_desc_t) __VA_ARGS__ )
206 const ecs_iter_t *it);
FLECS_API int32_t ecs_rule_var_count(const ecs_rule_t *rule)
Return number of variables in rule.
FLECS_API const char * ecs_rule_var_name(const ecs_rule_t *rule, int32_t var_id)
Get variable name.
FLECS_API void ecs_rule_fini(ecs_rule_t *rule)
Delete a rule.
FLECS_API bool ecs_rule_var_is_entity(const ecs_rule_t *rule, int32_t var_id)
Test if variable is an entity.
FLECS_API const ecs_filter_t * ecs_rule_get_filter(const ecs_rule_t *rule)
Obtain filter from rule.
FLECS_API bool ecs_rule_next(ecs_iter_t *it)
Progress rule iterator.
FLECS_API char * ecs_rule_str(const ecs_rule_t *rule)
Convert rule to a string.
FLECS_API bool ecs_rule_next_instanced(ecs_iter_t *it)
Progress instanced iterator.
FLECS_API ecs_iter_t ecs_rule_iter(const ecs_world_t *world, const ecs_rule_t *rule)
Iterate a rule.
FLECS_API const char * ecs_rule_parse_vars(ecs_rule_t *rule, ecs_iter_t *it, const char *expr)
Populate variables from key-value string.
FLECS_API char * ecs_rule_str_w_profile(const ecs_rule_t *rule, const ecs_iter_t *it)
Convert rule to string with profile.
FLECS_API ecs_rule_t * ecs_rule_init(ecs_world_t *world, const ecs_filter_desc_t *desc)
Create a rule.
FLECS_API int32_t ecs_rule_find_var(const ecs_rule_t *rule, const char *name)
Find variable index.
struct ecs_rule_t ecs_rule_t
A rule is a query with advanced graph traversal features.
struct ecs_world_t ecs_world_t
A world is the container for all ECS data and supporting features.
flecs::rule< Comps... > rule(flecs::rule_base &parent, Args &&... args) const
Create a subrule.
Used with ecs_filter_init.
Filters alllow for ad-hoc quick filtering of entity tables.