16struct term final : term_builder_i<term> {
18 : term_builder_i<term>(&value)
22 term(flecs::world_t *world_ptr)
23 : term_builder_i<term>(&value)
25 , world_(world_ptr) { }
28 : term_builder_i<term>(&value)
32 this->set_term(&value);
35 term(flecs::world_t *world_ptr, id_t
id)
36 : term_builder_i<term>(&value)
39 if (
id & ECS_ID_FLAGS_MASK) {
44 this->set_term(&value);
47 term(flecs::world_t *world_ptr, entity_t r, entity_t o)
48 : term_builder_i<term>(&value)
51 value.id = ecs_pair(r, o);
52 this->set_term(&value);
56 : term_builder_i<term>(&value)
59 if (
id & ECS_ID_FLAGS_MASK) {
67 : term_builder_i<term>(&value)
70 value.id = ecs_pair(r, o);
75 this->set_term(
nullptr);
86 flecs::inout_kind_t inout() {
87 return static_cast<flecs::inout_kind_t
>(value.inout);
90 flecs::oper_kind_t oper() {
91 return static_cast<flecs::oper_kind_t
>(value.oper);
103 return flecs::entity(world_, ECS_TERM_REF_ID(&value.second));
106 operator flecs::term_t()
const {
113 flecs::world_t* world_v()
override {
return world_; }
116 flecs::world_t *world_;