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