Skip to content
Flecs v4.1
impl.hpp
Go to the documentation of this file.
1/**
2 * @file addons/cpp/mixins/doc/impl.hpp
3 * @brief Doc mixin implementation.
4 */
5
6#pragma once
7
8namespace flecs {
9namespace doc {
10
11/** Get UUID for an entity.
12 *
13 * @see ecs_doc_get_uuid()
14 * @see flecs::doc::set_uuid()
15 * @see flecs::entity_view::doc_uuid()
16 *
17 * @ingroup cpp_addons_doc
18 */
19inline const char* get_uuid(const flecs::entity_view& e) {
20 return ecs_doc_get_uuid(e.world(), e);
21}
22
23/** Get human-readable name for an entity.
24 *
25 * @see ecs_doc_get_name()
26 * @see flecs::doc::set_name()
27 * @see flecs::entity_view::doc_name()
28 *
29 * @ingroup cpp_addons_doc
30 */
31inline const char* get_name(const flecs::entity_view& e) {
32 return ecs_doc_get_name(e.world(), e);
33}
34
35/** Get brief description for an entity.
36 *
37 * @see ecs_doc_get_brief()
38 * @see flecs::doc::set_brief()
39 * @see flecs::entity_view::doc_brief()
40 *
41 * @ingroup cpp_addons_doc
42 */
43inline const char* get_brief(const flecs::entity_view& e) {
44 return ecs_doc_get_brief(e.world(), e);
45}
46
47/** Get detailed description for an entity.
48 *
49 * @see ecs_doc_get_detail()
50 * @see flecs::doc::set_detail()
51 * @see flecs::entity_view::doc_detail()
52 *
53 * @ingroup cpp_addons_doc
54 */
55inline const char* get_detail(const flecs::entity_view& e) {
56 return ecs_doc_get_detail(e.world(), e);
57}
58
59/** Get link to external documentation for an entity.
60 *
61 * @see ecs_doc_get_link()
62 * @see flecs::doc::set_link()
63 * @see flecs::entity_view::doc_link()
64 *
65 * @ingroup cpp_addons_doc
66 */
67inline const char* get_link(const flecs::entity_view& e) {
68 return ecs_doc_get_link(e.world(), e);
69}
70
71/** Get color for an entity.
72 *
73 * @see ecs_doc_get_color()
74 * @see flecs::doc::set_color()
75 * @see flecs::entity_view::doc_color()
76 *
77 * @ingroup cpp_addons_doc
78 */
79inline const char* get_color(const flecs::entity_view& e) {
80 return ecs_doc_get_color(e.world(), e);
81}
82
83/** Set UUID for an entity.
84 *
85 * @see ecs_doc_set_uuid()
86 * @see flecs::doc::get_uuid()
87 * @see flecs::entity_builder::set_doc_uuid()
88 *
89 * @ingroup cpp_addons_doc
90 */
91inline void set_uuid(flecs::entity& e, const char *uuid) {
92 ecs_doc_set_uuid(e.world(), e, uuid);
93}
94
95/** Set human-readable name for an entity.
96 *
97 * @see ecs_doc_set_name()
98 * @see flecs::doc::get_name()
99 * @see flecs::entity_builder::set_doc_name()
100 *
101 * @ingroup cpp_addons_doc
102 */
103inline void set_name(flecs::entity& e, const char *name) {
104 ecs_doc_set_name(e.world(), e, name);
105}
106
107/** Set brief description for an entity.
108 *
109 * @see ecs_doc_set_brief()
110 * @see flecs::doc::get_brief()
111 * @see flecs::entity_builder::set_doc_brief()
112 *
113 * @ingroup cpp_addons_doc
114 */
115inline void set_brief(flecs::entity& e, const char *description) {
116 ecs_doc_set_brief(e.world(), e, description);
117}
118
119/** Set detailed description for an entity.
120 *
121 * @see ecs_doc_set_detail()
122 * @see flecs::doc::get_detail()
123 * @see flecs::entity_builder::set_doc_detail()
124 *
125 * @ingroup cpp_addons_doc
126 */
127inline void set_detail(flecs::entity& e, const char *description) {
128 ecs_doc_set_detail(e.world(), e, description);
129}
130
131/** Set link to external documentation for an entity.
132 *
133 * @see ecs_doc_set_link()
134 * @see flecs::doc::get_link()
135 * @see flecs::entity_builder::set_doc_link()
136 *
137 * @ingroup cpp_addons_doc
138 */
139inline void set_link(flecs::entity& e, const char *link) {
140 ecs_doc_set_link(e.world(), e, link);
141}
142
143/** Set color for an entity.
144 *
145 * @see ecs_doc_set_color()
146 * @see flecs::doc::get_color()
147 * @see flecs::entity_builder::set_doc_color()
148 *
149 * @ingroup cpp_addons_doc
150 */
151inline void set_color(flecs::entity& e, const char *color) {
152 ecs_doc_set_color(e.world(), e, color);
153}
154
155/** @private */
156namespace _ {
157
158/** @private */
159inline void init(flecs::world& world) {
160 world.component<doc::Description>("flecs::doc::Description");
161}
162
163} // namespace _
164} // namespace doc
165} // namespace flecs
FLECS_API void ecs_doc_set_uuid(ecs_world_t *world, ecs_entity_t entity, const char *uuid)
Add UUID to entity.
FLECS_API const char * ecs_doc_get_name(const ecs_world_t *world, ecs_entity_t entity)
Get human-readable name from entity.
FLECS_API const char * ecs_doc_get_color(const ecs_world_t *world, ecs_entity_t entity)
Get color from entity.
FLECS_API const char * ecs_doc_get_uuid(const ecs_world_t *world, ecs_entity_t entity)
Get UUID from entity.
FLECS_API void ecs_doc_set_brief(ecs_world_t *world, ecs_entity_t entity, const char *description)
Add brief description to entity.
FLECS_API const char * ecs_doc_get_link(const ecs_world_t *world, ecs_entity_t entity)
Get link to external documentation from entity.
FLECS_API const char * ecs_doc_get_detail(const ecs_world_t *world, ecs_entity_t entity)
Get detailed description from entity.
FLECS_API const char * ecs_doc_get_brief(const ecs_world_t *world, ecs_entity_t entity)
Get brief description from entity.
FLECS_API void ecs_doc_set_detail(ecs_world_t *world, ecs_entity_t entity, const char *description)
Add detailed description to entity.
FLECS_API void ecs_doc_set_link(ecs_world_t *world, ecs_entity_t entity, const char *link)
Add link to external documentation to entity.
FLECS_API void ecs_doc_set_color(ecs_world_t *world, ecs_entity_t entity, const char *color)
Add color to entity.
FLECS_API void ecs_doc_set_name(ecs_world_t *world, ecs_entity_t entity, const char *name)
Add human-readable name to entity.
const char * get_color(const flecs::entity_view &e)
Get color for an entity.
Definition impl.hpp:79
void set_uuid(flecs::entity &e, const char *uuid)
Set UUID for an entity.
Definition impl.hpp:91
void set_link(flecs::entity &e, const char *link)
Set link to external documentation for an entity.
Definition impl.hpp:139
void set_name(flecs::entity &e, const char *name)
Set human-readable name for an entity.
Definition impl.hpp:103
const char * get_brief(const flecs::entity_view &e)
Get brief description for an entity.
Definition impl.hpp:43
const char * get_detail(const flecs::entity_view &e)
Get detailed description for an entity.
Definition impl.hpp:55
void set_brief(flecs::entity &e, const char *description)
Set brief description for an entity.
Definition impl.hpp:115
const char * get_link(const flecs::entity_view &e)
Get link to external documentation for an entity.
Definition impl.hpp:67
const char * get_name(const flecs::entity_view &e)
Get human-readable name for an entity.
Definition impl.hpp:31
void set_color(flecs::entity &e, const char *color)
Set color for an entity.
Definition impl.hpp:151
EcsDocDescription Description
flecs.doc.Description component.
Definition decl.hpp:20
const char * get_uuid(const flecs::entity_view &e)
Get UUID for an entity.
Definition impl.hpp:19
void set_detail(flecs::entity &e, const char *description)
Set detailed description for an entity.
Definition impl.hpp:127
flecs::component< T > component(Args &&... args) const
Find or register a component.
Definition impl.hpp:11
Int to enum.
Definition component.hpp:18
Entity.
Definition entity.hpp:30
flecs::world world() const
Get the world.
Definition impl.hpp:60
The world.
Definition world.hpp:129