Files
clang-uml/docs/test_cases/t30013.md
2024-01-01 21:44:37 +01:00

637 lines
13 KiB
Markdown

# t30013 - C++20 modules package dependencies diagram test
## Config
```yaml
diagrams:
t30013_package:
type: package
glob:
- t30013.cc
package_type: module
include:
modules:
- t30013
using_module: t30013
```
## Source code
File `tests/t30013/t30013.cc`
```cpp
import t30013.app;
import t30013.mod1;
import t30013.mod2;
import t30013.mod3;
import t30013.mod4;
import t30013.mod5;
import t30013.mod6;
import t30013.mod7;
import t30013.mod8;
import t30013.mod9;
import t30013.mod10;
import t30013.mod11;
import t30013.mod12;
import t30013.mod13;
import t30013.mod14;
import t30013.mod15;
import t30013.mod16;
import t30013.mod17;
import t30013.mod18;
namespace clanguml::t30013 {
class R {
CBA cba;
};
} // namespace clanguml::t30013
```
File `tests/t30013/src/mod7.cppm`
```cpp
export module t30013.mod7;
export namespace clanguml::t30013 {
struct CG { };
}
```
File `tests/t30013/src/mod11.cppm`
```cpp
export module t30013.mod11;
export namespace clanguml::t30013 {
struct CK { };
}
```
File `tests/t30013/src/mod17.cppm`
```cpp
export module t30013.mod17;
export namespace clanguml::t30013 {
struct CR { };
}
```
File `tests/t30013/src/mod16.cppm`
```cpp
export module t30013.mod16;
export namespace clanguml::t30013 {
struct CP { };
}
```
File `tests/t30013/src/mod10.cppm`
```cpp
export module t30013.mod10;
export namespace clanguml::t30013 {
struct CJ { };
}
```
File `tests/t30013/src/mod4.cppm`
```cpp
export module t30013.mod4;
export namespace clanguml::t30013 {
struct CD { };
}
```
File `tests/t30013/src/mod1.cppm`
```cpp
export module t30013.mod1;
export namespace clanguml::t30013 {
struct CA { };
}
```
File `tests/t30013/src/app.cppm`
```cpp
module;
#include <array>
#include <map>
#include <memory>
#include <string>
#include <vector>
export module t30013.app;
import t30013.mod1;
import t30013.mod2;
import t30013.mod3;
import t30013.mod4;
import t30013.mod5;
import t30013.mod6;
import t30013.mod7;
import t30013.mod8;
import t30013.mod9;
import t30013.mod10;
import t30013.mod11;
import t30013.mod12;
import t30013.mod13;
import t30013.mod14;
import t30013.mod15;
import t30013.mod16;
import t30013.mod17;
import t30013.mod18;
export namespace clanguml::t30013 {
class CBA : public CF {
public:
CA *ca_;
CB<int> cb_;
std::shared_ptr<CC> cc_;
std::map<std::string, std::unique_ptr<CD>> *cd_;
std::array<CO, 5> co_;
static CP *cp_;
CBA() = default;
CBA(CN *cn) { }
friend CR;
template <typename... Item> CBA(std::tuple<Item...> &items) { }
void ce(const std::vector<CE> /*ce_*/) { }
std::shared_ptr<CG> cg() { return {}; }
template <typename T> void ch(std::map<T, std::shared_ptr<CH>> &ch_) { }
template <typename T> std::map<T, std::shared_ptr<CI>> ci(T * /*t*/)
{
return {};
}
S s;
};
void cj(std::unique_ptr<CJ> /*cj_*/) { }
std::unique_ptr<CK> ck() { return {}; }
template <typename T> void cl(std::map<T, std::shared_ptr<CL>> & /*ch_*/) { }
template <typename T> std::map<T, std::shared_ptr<CM>> cm() { return {}; }
} // namespace clanguml::t30013
```
File `tests/t30013/src/mod13.cppm`
```cpp
export module t30013.mod13;
export namespace clanguml::t30013 {
struct CM { };
}
```
File `tests/t30013/src/mod9.cppm`
```cpp
export module t30013.mod9;
export namespace clanguml::t30013 {
struct CI { };
}
```
File `tests/t30013/src/mod5.cppm`
```cpp
export module t30013.mod5;
export namespace clanguml::t30013 {
struct CE { };
}
```
File `tests/t30013/src/mod18.cppm`
```cpp
export module t30013.mod18;
export namespace clanguml::t30013 {
enum class S { s1, s2, s3 };
}
```
File `tests/t30013/src/mod2.cppm`
```cpp
export module t30013.mod2;
export namespace clanguml::t30013 {
template <typename T> struct CB {
T cb;
};
}
```
File `tests/t30013/src/mod14.cppm`
```cpp
export module t30013.mod14;
export namespace clanguml::t30013 {
struct CN { };
}
```
File `tests/t30013/src/mod12.cppm`
```cpp
export module t30013.mod12;
export namespace clanguml::t30013 {
struct CL { };
}
```
File `tests/t30013/src/mod6.cppm`
```cpp
export module t30013.mod6;
export namespace clanguml::t30013 {
struct CF { };
}
```
File `tests/t30013/src/mod8.cppm`
```cpp
export module t30013.mod8;
export namespace clanguml::t30013 {
struct CH { };
}
```
File `tests/t30013/src/mod3.cppm`
```cpp
export module t30013.mod3;
export namespace clanguml::t30013 {
struct CC { };
}
```
File `tests/t30013/src/mod15.cppm`
```cpp
export module t30013.mod15;
export namespace clanguml::t30013 {
struct CO { };
}
```
## Generated PlantUML diagrams
![t30013_package](./t30013_package.svg "C++20 modules package dependencies diagram test")
## Generated Mermaid diagrams
![t30013_package](./t30013_package_mermaid.svg "C++20 modules package dependencies diagram test")
## Generated JSON models
```json
{
"diagram_type": "package",
"elements": [
{
"display_name": "mod1",
"id": "2044296282469444594",
"is_deprecated": false,
"name": "mod1",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod1.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod2",
"id": "1532747677179216874",
"is_deprecated": false,
"name": "mod2",
"namespace": "t30013",
"source_location": {
"column": 30,
"file": "src/mod2.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod3",
"id": "2181211985644595508",
"is_deprecated": false,
"name": "mod3",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod3.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod4",
"id": "1994575092781206355",
"is_deprecated": false,
"name": "mod4",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod4.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod5",
"id": "83546849245676714",
"is_deprecated": false,
"name": "mod5",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod5.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod6",
"id": "441620369599169965",
"is_deprecated": false,
"name": "mod6",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod6.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod7",
"id": "836435135277319151",
"is_deprecated": false,
"name": "mod7",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod7.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod8",
"id": "420790450869221512",
"is_deprecated": false,
"name": "mod8",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod8.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod9",
"id": "396495954682989840",
"is_deprecated": false,
"name": "mod9",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod9.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod10",
"id": "2177162846045884064",
"is_deprecated": false,
"name": "mod10",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod10.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod11",
"id": "1414886740502603020",
"is_deprecated": false,
"name": "mod11",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod11.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod12",
"id": "1312439587201843275",
"is_deprecated": false,
"name": "mod12",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod12.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod13",
"id": "1087761784810349022",
"is_deprecated": false,
"name": "mod13",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod13.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod14",
"id": "613410583917815311",
"is_deprecated": false,
"name": "mod14",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod14.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod15",
"id": "1226951305255100636",
"is_deprecated": false,
"name": "mod15",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod15.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod16",
"id": "1931818205177002737",
"is_deprecated": false,
"name": "mod16",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod16.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod17",
"id": "1954698286919808752",
"is_deprecated": false,
"name": "mod17",
"namespace": "t30013",
"source_location": {
"column": 8,
"file": "src/mod17.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "mod18",
"id": "984386744169567889",
"is_deprecated": false,
"name": "mod18",
"namespace": "t30013",
"source_location": {
"column": 12,
"file": "src/mod18.cppm",
"line": 4,
"translation_unit": "t30013.cc"
},
"type": "module"
},
{
"display_name": "app",
"id": "45223532970498010",
"is_deprecated": false,
"name": "app",
"namespace": "t30013",
"source_location": {
"column": 7,
"file": "src/app.cppm",
"line": 32,
"translation_unit": "t30013.cc"
},
"type": "module"
}
],
"name": "t30013_package",
"package_type": "module",
"relationships": [
{
"destination": "420790450869221512",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "396495954682989840",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "2044296282469444594",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1532747677179216874",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "2181211985644595508",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1994575092781206355",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1226951305255100636",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "984386744169567889",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1931818205177002737",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "613410583917815311",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "83546849245676714",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "836435135277319151",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1954698286919808752",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "441620369599169965",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "2177162846045884064",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1414886740502603020",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1312439587201843275",
"source": "45223532970498010",
"type": "dependency"
},
{
"destination": "1087761784810349022",
"source": "45223532970498010",
"type": "dependency"
}
],
"using_module": "t30013"
}
```