0.5.4
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
Functions
YAML serialization emitters

Detailed Description

Overloads for YAML serializations for various config types.

Overloads for YAML serializations for various model types.

Functions

YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const config &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const inheritable_diagram_options &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const filter &f)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const plantuml &p)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const method_arguments &ma)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const generate_links_config &glc)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const git_config &gc)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const relationship_hint_t &rh)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const comment_parser_t &cp)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const hint_t &h)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const class_diagram &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const sequence_diagram &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const include_diagram &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const package_diagram &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const layout_hint &c)
 
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const source_location &sc)
 
template<typename T >
YAML::Emitter & clanguml::config::operator<< (YAML::Emitter &out, const option< T > &o)
 
YAML::Emitter & clanguml::common::model::operator<< (YAML::Emitter &out, const namespace_ &n)
 
YAML::Emitter & clanguml::common::model::operator<< (YAML::Emitter &out, const relationship_t &r)
 
YAML::Emitter & clanguml::common::model::operator<< (YAML::Emitter &out, const access_t &r)
 
YAML::Emitter & clanguml::common::model::operator<< (YAML::Emitter &out, const diagram_t &d)
 

Function Documentation

◆ operator<<() [1/21]

YAML::Emitter & clanguml::common::model::operator<< ( YAML::Emitter &  out,
const access_t r 
)

Definition at line 66 of file yaml_emitters.cc.

67{
68 out << to_string(a);
69 return out;
70}

◆ operator<<() [2/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const class_diagram c 
)

Definition at line 373 of file yaml_emitters.cc.

374{
375 out << YAML::BeginMap;
376 out << YAML::Key << "type" << YAML::Value << c.type();
377 out << c.layout;
378 out << dynamic_cast<const inheritable_diagram_options &>(c);
379 out << YAML::EndMap;
380 return out;
381}

◆ operator<<() [3/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const comment_parser_t cp 
)

Definition at line 224 of file yaml_emitters.cc.

225{
226 out << to_string(cp);
227 return out;
228}

◆ operator<<() [4/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const config c 
)

Definition at line 271 of file yaml_emitters.cc.

272{
273 out << YAML::BeginMap;
274
275 out << c.compilation_database_dir;
276 out << c.output_directory;
277 out << c.query_driver;
278 out << c.add_compile_flags;
279 out << c.remove_compile_flags;
280
281 out << dynamic_cast<const inheritable_diagram_options &>(c);
282
283 out << YAML::Key << "diagrams";
284 out << YAML::BeginMap;
285
286 for (const auto &[k, v] : c.diagrams) {
287 out << YAML::Key << k;
288 if (v->type() == common::model::diagram_t::kClass) {
289 out << YAML::Value << dynamic_cast<class_diagram &>(*v);
290 }
291 else if (v->type() == common::model::diagram_t::kSequence) {
292 out << YAML::Value << dynamic_cast<sequence_diagram &>(*v);
293 }
294 else if (v->type() == common::model::diagram_t::kInclude) {
295 out << YAML::Value << dynamic_cast<include_diagram &>(*v);
296 }
297 else if (v->type() == common::model::diagram_t::kPackage) {
298 out << YAML::Value << dynamic_cast<package_diagram &>(*v);
299 }
300 }
301
302 out << YAML::EndMap;
303 out << YAML::EndMap;
304 return out;
305}

◆ operator<<() [5/21]

YAML::Emitter & clanguml::common::model::operator<< ( YAML::Emitter &  out,
const diagram_t d 
)

Definition at line 78 of file yaml_emitters.cc.

79{
80 out << to_string(d);
81 return out;
82}

◆ operator<<() [6/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const filter f 
)

Definition at line 126 of file yaml_emitters.cc.

127{
128 out << YAML::BeginMap;
129 if (!f.namespaces.empty())
130 out << YAML::Key << "namespaces" << YAML::Value << f.namespaces;
131 if (!f.modules.empty())
132 out << YAML::Key << "modules" << YAML::Value << f.modules;
133 if (!f.module_access.empty())
134 out << YAML::Key << "module_access" << YAML::Value << f.module_access;
135 if (!f.access.empty())
136 out << YAML::Key << "access" << YAML::Value << f.access;
137 if (!f.context.empty())
138 out << YAML::Key << "context" << YAML::Value << f.context;
139 if (!f.dependants.empty())
140 out << YAML::Key << "dependants" << YAML::Value << f.dependants;
141 if (!f.dependencies.empty())
142 out << YAML::Key << "dependencies" << YAML::Value << f.dependencies;
143 if (!f.elements.empty())
144 out << YAML::Key << "elements" << YAML::Value << f.elements;
145 if (!f.element_types.empty())
146 out << YAML::Key << "element_types" << YAML::Value << f.element_types;
147 if (!f.method_types.empty())
148 out << YAML::Key << "method_types" << YAML::Value << f.method_types;
149 if (!f.paths.empty())
150 out << YAML::Key << "paths" << YAML::Value << f.paths;
151 if (!f.relationships.empty())
152 out << YAML::Key << "relationships" << YAML::Value << f.relationships;
153 if (!f.specializations.empty())
154 out << YAML::Key << "specializations" << YAML::Value
155 << f.specializations;
156 if (!f.subclasses.empty())
157 out << YAML::Key << "subclasses" << YAML::Value << f.subclasses;
158 if (!f.parents.empty())
159 out << YAML::Key << "parents" << YAML::Value << f.parents;
160 if (!f.method_types.empty())
161 out << YAML::Key << "callee_types" << YAML::Value << f.callee_types;
162 out << YAML::EndMap;
163 return out;
164}

◆ operator<<() [7/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const generate_links_config glc 
)

Definition at line 187 of file yaml_emitters.cc.

188{
189 out << YAML::BeginMap;
190 out << YAML::Key << "link" << YAML::Value << glc.link;
191 out << YAML::Key << "tooltip" << YAML::Value << glc.tooltip;
192 out << YAML::EndMap;
193 return out;
194}

◆ operator<<() [8/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const git_config gc 
)

Definition at line 196 of file yaml_emitters.cc.

197{
198 out << YAML::BeginMap;
199 out << YAML::Key << "branch" << YAML::Value << gc.branch;
200 out << YAML::Key << "revision" << YAML::Value << gc.revision;
201 out << YAML::Key << "commit" << YAML::Value << gc.commit;
202 out << YAML::Key << "toplevel" << YAML::Value << gc.toplevel;
203 out << YAML::EndMap;
204
205 return out;
206}

◆ operator<<() [9/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const hint_t h 
)

Definition at line 218 of file yaml_emitters.cc.

219{
220 out << to_string(h);
221 return out;
222}

◆ operator<<() [10/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const include_diagram c 
)

Definition at line 395 of file yaml_emitters.cc.

396{
397 out << YAML::BeginMap;
398 out << YAML::Key << "type" << YAML::Value << c.type();
399 out << c.layout;
400 out << dynamic_cast<const inheritable_diagram_options &>(c);
401 out << YAML::EndMap;
402 return out;
403}

◆ operator<<() [11/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const inheritable_diagram_options c 
)

Definition at line 307 of file yaml_emitters.cc.

309{
310 // Common options
311 out << c.base_directory;
312 out << c.comment_parser;
313 out << c.debug_mode;
314 out << c.exclude;
315 out << c.generate_links;
316 out << c.git;
317 out << c.glob;
318 out << c.include;
319 out << c.puml;
320 out << c.relative_to;
321 out << c.using_namespace;
322 out << c.using_module;
323 out << c.generate_metadata;
324
325 if (const auto *cd = dynamic_cast<const class_diagram *>(&c);
326 cd != nullptr) {
327 out << cd->title;
328 out << c.generate_method_arguments;
329 out << c.generate_concept_requirements;
330 out << c.generate_packages;
331 out << c.include_relations_also_as_members;
332 if (c.relationship_hints) {
333 out << YAML::Key << "relationship_hints" << YAML::Value
334 << c.relationship_hints();
335 }
336
337 if (c.type_aliases) {
338 out << YAML::Key << "type_aliases" << YAML::Value
339 << c.type_aliases();
340 }
341 out << c.member_order;
342 out << c.package_type;
343 out << c.generate_template_argument_dependencies;
344 out << c.skip_redundant_dependencies;
345 }
346 else if (const auto *sd = dynamic_cast<const sequence_diagram *>(&c);
347 sd != nullptr) {
348 out << sd->title;
349 out << c.combine_free_functions_into_file_participants;
350 out << c.inline_lambda_messages;
351 out << c.generate_condition_statements;
352 out << c.generate_method_arguments;
353 out << c.generate_return_types;
354 out << c.participants_order;
355 out << c.generate_message_comments;
356 out << c.message_comment_width;
357 }
358 else if (const auto *pd = dynamic_cast<const package_diagram *>(&c);
359 pd != nullptr) {
360 out << pd->title;
361 out << c.generate_packages;
362 out << c.package_type;
363 }
364 else if (const auto *id = dynamic_cast<const include_diagram *>(&c);
365 id != nullptr) {
366 out << id->title;
367 out << c.generate_system_headers;
368 }
369
370 return out;
371}

◆ operator<<() [12/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const layout_hint c 
)

Definition at line 248 of file yaml_emitters.cc.

249{
250 out << YAML::BeginMap;
251
252 out << YAML::Key << c.hint << YAML::Value;
253 if (std::holds_alternative<std::string>(c.entity))
254 out << std::get<std::string>(c.entity);
255 else if (std::holds_alternative<std::vector<std::string>>(c.entity))
256 out << std::get<std::vector<std::string>>(c.entity);
257
258 out << YAML::EndMap;
259 return out;
260}

◆ operator<<() [13/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const method_arguments ma 
)

Definition at line 181 of file yaml_emitters.cc.

182{
183 out << to_string(ma);
184 return out;
185}

◆ operator<<() [14/21]

YAML::Emitter & clanguml::common::model::operator<< ( YAML::Emitter &  out,
const namespace_ n 
)

Definition at line 54 of file yaml_emitters.cc.

55{
56 out << n.to_string();
57 return out;
58}

◆ operator<<() [15/21]

template<typename T >
YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const option< T > &  o 
)

Definition at line 862 of file config.h.

863{
864 if (o.has_value) {
865 out << YAML::Key << o.name;
866 if constexpr (std::is_same_v<T, std::filesystem::path>)
867 out << YAML::Value << o.value.string();
868 else
869 out << YAML::Value << o.value;
870 }
871 return out;
872}

◆ operator<<() [16/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const package_diagram c 
)

Definition at line 405 of file yaml_emitters.cc.

406{
407 out << YAML::BeginMap;
408 out << YAML::Key << "type" << YAML::Value << c.type();
409 out << c.layout;
410 out << dynamic_cast<const inheritable_diagram_options &>(c);
411 out << YAML::EndMap;
412 return out;
413}

◆ operator<<() [17/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const plantuml p 
)

Definition at line 166 of file yaml_emitters.cc.

167{
168 if (p.before.empty() && p.after.empty())
169 return out;
170
171 out << YAML::BeginMap;
172 if (!p.before.empty())
173 out << YAML::Key << "before" << YAML::Value << p.before;
174 if (!p.after.empty())
175 out << YAML::Key << "after" << YAML::Value << p.after;
176 out << YAML::EndMap;
177
178 return out;
179}

◆ operator<<() [18/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const relationship_hint_t rh 
)

Definition at line 208 of file yaml_emitters.cc.

209{
210 out << YAML::BeginMap;
211 out << YAML::Key << "default" << YAML::Value << rh.default_hint;
212 for (const auto &[k, v] : rh.argument_hints)
213 out << YAML::Key << k << YAML::Value << v;
214 out << YAML::EndMap;
215 return out;
216}

◆ operator<<() [19/21]

YAML::Emitter & clanguml::common::model::operator<< ( YAML::Emitter &  out,
const relationship_t r 
)

Definition at line 60 of file yaml_emitters.cc.

61{
62 out << to_string(r);
63 return out;
64}

◆ operator<<() [20/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const sequence_diagram c 
)

Definition at line 383 of file yaml_emitters.cc.

384{
385 out << YAML::BeginMap;
386 out << YAML::Key << "type" << YAML::Value << c.type();
387 out << c.from;
388 out << c.from_to;
389 out << c.to;
390 out << dynamic_cast<const inheritable_diagram_options &>(c);
391 out << YAML::EndMap;
392 return out;
393}

◆ operator<<() [21/21]

YAML::Emitter & clanguml::config::operator<< ( YAML::Emitter &  out,
const source_location sc 
)

Definition at line 262 of file yaml_emitters.cc.

263{
264 out << YAML::BeginMap;
265 out << YAML::Key << to_string(sc.location_type) << YAML::Value
266 << sc.location;
267 out << YAML::EndMap;
268 return out;
269}