rapidyaml  0.16.0
parseandemitYAML,anddoitfast
doxy_common.hpp
Go to the documentation of this file.
1 namespace c4 {
2 namespace yml {
3 
4 
5 /** @defgroup doc_quickstart Quickstart
6  *
7  * Example code for every feature.
8  */
9 
10 
11 /** @defgroup doc_parse Parse utilities
12  * @see @ref sample_parse_in_place()
13  * @see @ref sample_parse_in_arena()
14  * @see @ref sample_parse_file()
15  * @see @ref sample_parse_reuse_tree()
16  * @see @ref sample_parse_reuse_parser()
17  * @see @ref sample_parse_reuse_tree_and_parser()
18  * @see @ref sample_location_tracking()
19  */
20 /** @defgroup doc_parse_in_place__with_existing_parser Parse in place with existing parser
21  * @ingroup doc_parse
22  */
23 /** @defgroup doc_parse_in_place___with_temporary_parser Parse in place with temporary parser
24  * @ingroup doc_parse
25  */
26 /** @defgroup doc_parse_in_arena__with_existing_parser Parse in arena with existing parser
27  * @ingroup doc_parse
28  */
29 /** @defgroup doc_parse_in_arena__with_temporary_parser Parse in arena with temporary parser
30  * @ingroup doc_parse
31  */
32 /** @defgroup doc_event_handlers Event Handlers
33  *
34  * Policy classes to use with the @ref ParseEngine, to create
35  * side-effects from YAML events.
36  *
37  * @ingroup doc_parse
38  */
39 /** @defgroup doc_event_handlers_tree Tree Event Handler
40  * @ingroup doc_event_handlers
41  */
42 /** @defgroup doc_event_handlers_ints Ints Event Handler
43  * @ingroup doc_event_handlers
44  */
45 
46 
47 
48 /** @defgroup doc_node_type Node types
49  */
50 
51 
52 /** @defgroup doc_tree Tree utilities
53  * @see @ref sample_quick_overview()
54  * @see @ref sample_iterate_tree()
55  * @see @ref sample_create_tree()
56  * @see @ref sample_tree_arena()
57  *
58  * @see @ref sample_static_trees()
59  * @see @ref sample_location_tracking()
60  *
61  * @see @ref sample_docs()
62  * @see @ref sample_anchors_and_aliases()
63  * @see @ref sample_tags()
64  */
65 
66 
67 /** @defgroup doc_node_classes Node classes
68  *
69  * High-level node classes.
70  *
71  * @see @ref sample_quick_overview()
72  * @see @ref sample_iterate_tree()
73  * @see @ref sample_create_tree()
74  * @see @ref sample_create_tree_style()
75  * @see @ref sample_tree_arena()
76  */
77 
78 
79 /** @defgroup doc_emit Emit utilities
80  *
81  * Utilities to emit YAML and JSON, either to a memory buffer or to a
82  * file or ostream-like class.
83  *
84  * @see @ref sample_emit_to_container()
85  * @see @ref sample_emit_to_stream()
86  * @see @ref sample_emit_to_file()
87  * @see @ref sample_emit_nested_node()
88  * @see @ref sample_style()
89  */
90 
91 /** @defgroup doc_emit_to_buffer Emit to a memory buffer
92  * @ingroup doc_emit
93  */
94 /** @defgroup doc_emit_to_buffer_from_root Emit full tree
95  * @ingroup doc_emit_to_buffer
96  */
97 /** @defgroup doc_emit_to_buffer_from_node_id Emit from nested node id
98  * @ingroup doc_emit_to_buffer
99  */
100 /** @defgroup doc_emit_to_buffer_from_noderef Emit from ConstNodeRef
101  * @ingroup doc_emit_to_buffer
102  */
103 
104 /** @defgroup doc_emit_to_container Emit to a container
105  * Overloads to emit to contiguous memory container of char like std::string or std::vector<char>
106  * @ingroup doc_emit
107  */
108 /** @defgroup doc_emit_to_container_from_root Emit full tree
109  * @ingroup doc_emit_to_container
110  */
111 /** @defgroup doc_emit_to_container_from_node_id Emit from nested node id
112  * @ingroup doc_emit_to_container
113  */
114 /** @defgroup doc_emit_to_container_from_noderef Emit from ConstNodeRef
115  * @ingroup doc_emit_to_container
116  */
117 
118 /** @defgroup doc_emit_to_file Emit to file
119  * @ingroup doc_emit
120  */
121 /** @defgroup doc_emit_to_file_from_root Emit full tree
122  * @ingroup doc_emit_to_file
123  */
124 /** @defgroup doc_emit_to_file_from_node_id Emit from nested node id
125  * @ingroup doc_emit_to_file
126  */
127 /** @defgroup doc_emit_to_file_from_noderef Emit from ConstNodeRef
128  * @ingroup doc_emit_to_file
129  */
130 
131 /** @defgroup doc_emit_to_ostream Emit to an STL-like ostream
132  * @ingroup doc_emit
133  */
134 
135 /** @defgroup doc_writers Writer objects to use with an Emitter
136  * @ingroup doc_emit
137  */
138 
139 
140 
141 /** @defgroup doc_serialization Serialization/deserialization
142  */
143 /** @defgroup doc_serialization_using How to use (de)serialization
144  *
145  * Shows basic use of the calls to serialize and deserialize.
146  *
147  * @ingroup doc_serialization
148  * @see @ref sample_serialize_basic()
149  * @see @ref doc_serialization_user_types to implement for user types
150  */
151 // don't wrap markdown links! doxygen won't render them.
152 /** @defgroup doc_serialization_user_types Serialization of user types
153  * @ingroup doc_serialization
154  *
155  * Shows how to implement serialization for custom user types.
156  * rapidyaml provides a serialization implementation for all
157  * fundamental types, and optionally for some STL containers. To
158  * enable use with any type, rapidyaml uses
159  * [ADL to dispatch to type-specific](http://en.cppreference.com/w/cpp/language/adl)
160  * function overloads. For serializing or deserializing custom user
161  * types, you only need to provide the appropriate overloads, which
162  * are explained here.
163  *
164  * @see @ref doc_serialization_overview to find how the user-provided functions fit into rapidyaml's serialization pipeline.
165  */
166 /** @defgroup doc_serialization_overview Serialization overview
167  * Shows how user-provided functions fit into ryml's structure.
168  * @ingroup doc_serialization
169  */
170 
171 /** @defgroup doc_serialization_tree Serialization for Tree
172  * Shows ryml's default implementation of tree serialization
173  * @ingroup doc_serialization
174  */
175 /** @defgroup doc_serialization_tree_read Read from Tree
176  * Implementation of deserialization from a tree
177  * @ingroup doc_serialization_tree
178  */
179 /** @defgroup doc_serialization_tree_write Write to Tree
180  * Implementation of serialization to a tree
181  * @ingroup doc_serialization_tree
182  */
183 /** @defgroup doc_serialization_tree_write_arena Arena utils
184  * Implementation utils for serializing scalars in a tree's arena.
185  *
186  * These functions are implementation helpers used by @ref
187  * Tree::to_arena() and @ref NodeRef::to_arena() to grow the tree
188  * arena as needed and serialize scalars in it. There should be no
189  * reason to call these functions directly.
190  *
191  * They can be overriden by the user to customize behavior for a user
192  * type, but generally there should be no reason to do so -- if you
193  * think there is, please open an issue in github.
194  *
195  * @ingroup doc_serialization_tree_write
196  */
197 
198 /** @defgroup doc_serialization_node Serialization for nodes
199  * Shows ryml's default implementation of node serialization
200  * @ingroup doc_serialization
201  */
202 /** @defgroup doc_serialization_node_write Write to NodeRef
203  * @ingroup doc_serialization_node
204  */
205 /** @defgroup doc_serialization_node_read Read from ConstNodeRef
206  * @ingroup doc_serialization_node
207  */
208 
209 
210 /** @defgroup doc_ref_utils Anchor/Reference utilities
211  *
212  * @see @ref sample_anchors_and_aliases()
213  * @see @ref sample_anchors_and_aliases_create()
214  * */
215 
216 /** @defgroup doc_tag_utils Tag utilities
217  * @see @ref sample_tags()
218  */
219 
220 /** @defgroup doc_file_utils File utils
221  *
222  * Functions for loading/saving a file from/to disk.
223  */
224 
225 
226 /** @defgroup doc_scalar Scalar utilities
227  */
228 /** @defgroup doc_scalar_style Scalar style helpers
229  * These functions are used by the emitter to choose a scalar style when a scalar does not have it set.
230  * @ingroup doc_scalar
231  * @ingroup doc_emit
232  */
233 /** @defgroup doc_scalar_charconv Scalar charconv helpers
234  * These functions are used by the parser and emitter to convert scalars to and from chars.
235  * @ingroup doc_scalar
236  * @ingroup doc_emit
237  * @ingroup doc_parse
238  * @ingroup doc_serialization
239  */
240 /** @defgroup doc_scalar_filter Scalar filter processors
241  *
242  * These are internal utilities used by @ref ParseEngine to filter
243  * YAML scalars; normally there is no reason for a user to be manually
244  * using these classes.
245  *
246  * @ingroup doc_scalar
247  * @ingroup doc_parse */
248 
249 
250 /** @defgroup doc_error_handling Error handling
251  *
252  * Utilities to report handle errors, and to build and report error
253  * messages.
254  *
255  * @see @ref sample_error_handler()
256  */
257 
258 /** @defgroup doc_callbacks Callbacks for errors and allocation
259  *
260  * Functions called by ryml to allocate/free memory and to report
261  * errors.
262  *
263  * @see @ref sample_error_handler()
264  * @see @ref sample_global_allocator()
265  * @see @ref sample_per_tree_allocator()
266  */
267 
268 
269 // document macros for doxygen
270 
271 /** define this macro with a boolean value to enable/disable
272  * assertions to check preconditions and assumptions throughout the
273  * codebase; this causes a slowdown of the code, and larger code
274  * size. By default, this macro is defined unless NDEBUG is defined
275  * (see C4_USE_ASSERT); as a result, by default this macro is truthy
276  * only in debug builds. */
277 # define RYML_USE_ASSERT
278 
279 /** (Undefined by default) Define this macro to disable ryml's default
280  * implementation of the callback functions. See @ref doc_callbacks. */
281 # define RYML_NO_DEFAULT_CALLBACKS
282 
283 /** (Undefined by default) When this macro is defined (and
284  * @ref RYML_NO_DEFAULT_CALLBACKS is not defined), the default error
285  * handler will throw exceptions. See @ref doc_error_handling. */
286 # define RYML_DEFAULT_CALLBACK_USES_EXCEPTIONS
287 
288 /** Conditionally expands to `noexcept` when @ref RYML_USE_ASSERT is 0 and
289  * is empty otherwise. The user is unable to override this macro. */
290 # define RYML_NOEXCEPT
291 
292 /** (Undefined by default) Use shorter error message from
293  * checks/asserts: do not show the check condition in the error
294  * message. */
295 # defined RYML_SHORT_CHECK_MSG
296 
297 
298 } // namespace yml
299 } // namespace c4