rapidyaml 0.16.0
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/** @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