0.5.4
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
Classes | Functions
clanguml::common::generators::mermaid Namespace Reference

Classes

class  generator
 Base class for diagram generators. More...
 

Functions

std::string to_mermaid (relationship_t r)
 
std::string to_mermaid (access_t scope)
 
std::string to_mermaid (message_t r)
 
std::string indent (const unsigned level)
 
std::string render_name (std::string name)
 
std::string escape_name (std::string name, bool round_brackets)
 
template<typename DiagramModel , typename DiagramConfig >
std::ostream & operator<< (std::ostream &os, const generator< DiagramModel, DiagramConfig > &g)
 

Function Documentation

◆ escape_name()

std::string clanguml::common::generators::mermaid::escape_name ( std::string  name,
bool  round_brackets 
)

Definition at line 88 of file generator.cc.

89{
90 util::replace_all(name, "<", "&lt;");
91 util::replace_all(name, ">", "&gt;");
92 if (round_brackets) {
93 util::replace_all(name, "(", "&lpar;");
94 util::replace_all(name, ")", "&rpar;");
95 }
96 util::replace_all(name, "{", "&lbrace;");
97 util::replace_all(name, "}", "&rbrace;");
98
99 return name;
100}

◆ indent()

std::string clanguml::common::generators::mermaid::indent ( const unsigned  level)

Definition at line 75 of file generator.cc.

76{
77 const auto kIndentWidth = 4UL;
78 return std::string(level * kIndentWidth, ' '); // NOLINT
79}

◆ operator<<()

template<typename DiagramModel , typename DiagramConfig >
std::ostream & clanguml::common::generators::mermaid::operator<< ( std::ostream &  os,
const generator< DiagramModel, DiagramConfig > &  g 
)

Definition at line 388 of file generator.h.

390{
391 g.generate(os);
392 return os;
393}

◆ render_name()

std::string clanguml::common::generators::mermaid::render_name ( std::string  name)

Definition at line 81 of file generator.cc.

82{
83 util::replace_all(name, "##", "::");
84
85 return name;
86}

◆ to_mermaid() [1/3]

std::string clanguml::common::generators::mermaid::to_mermaid ( access_t  scope)

Definition at line 49 of file generator.cc.

50{
51 switch (scope) {
52 case access_t::kPublic:
53 return "+";
54 case access_t::kProtected:
55 return "#";
56 case access_t::kPrivate:
57 return "-";
58 default:
59 return "";
60 }
61}

◆ to_mermaid() [2/3]

std::string clanguml::common::generators::mermaid::to_mermaid ( message_t  r)

Definition at line 63 of file generator.cc.

64{
65 switch (r) {
66 case message_t::kCall:
67 return "->>";
68 case message_t::kReturn:
69 return "-->>";
70 default:
71 return "";
72 }
73}

◆ to_mermaid() [3/3]

std::string clanguml::common::generators::mermaid::to_mermaid ( relationship_t  r)

Definition at line 22 of file generator.cc.

23{
24 switch (r) {
25 case relationship_t::kOwnership:
26 case relationship_t::kComposition:
27 return "*--";
28 case relationship_t::kAggregation:
29 return "o--";
30 case relationship_t::kContainment:
31 return "()--";
32 case relationship_t::kAssociation:
33 return "-->";
34 case relationship_t::kInstantiation:
35 return "..|>";
36 case relationship_t::kFriendship:
37 return "<..";
38 case relationship_t::kDependency:
39 return "..>";
40 case relationship_t::kConstraint:
41 return "..>";
42 case relationship_t::kAlias:
43 return "..";
44 default:
45 return "";
46 }
47}