# 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 #include #include #include #include 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 cb_; std::shared_ptr cc_; std::map> *cd_; std::array co_; static CP *cp_; CBA() = default; CBA(CN *cn) { } friend CR; template CBA(std::tuple &items) { } void ce(const std::vector /*ce_*/) { } std::shared_ptr cg() { return {}; } template void ch(std::map> &ch_) { } template std::map> ci(T * /*t*/) { return {}; } S s; }; void cj(std::unique_ptr /*cj_*/) { } std::unique_ptr ck() { return {}; } template void cl(std::map> & /*ch_*/) { } template std::map> 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 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" } ```