# 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": "16354370259755556752", "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": "12261981417433734998", "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": "17449695885156764068", "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": "15956600742249650841", "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": "668374793965413715", "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": "3532962956793359726", "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": "6691481082218553213", "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": "3366323606953772100", "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": "3171967637463918724", "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": "17417302768367072513", "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": "11319093924020824163", "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": "10499516697614746202", "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": "8702094278482792177", "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": "4907284671342522495", "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": "9815610442040805091", "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": "15454545641416021896", "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": "15637586295358470019", "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": "7875093953356543116", "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": "361788263763984082", "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": "3366323606953772100", "source": "361788263763984082", "type": "dependency" }, { "destination": "3171967637463918724", "source": "361788263763984082", "type": "dependency" }, { "destination": "16354370259755556752", "source": "361788263763984082", "type": "dependency" }, { "destination": "12261981417433734998", "source": "361788263763984082", "type": "dependency" }, { "destination": "17449695885156764068", "source": "361788263763984082", "type": "dependency" }, { "destination": "15956600742249650841", "source": "361788263763984082", "type": "dependency" }, { "destination": "9815610442040805091", "source": "361788263763984082", "type": "dependency" }, { "destination": "7875093953356543116", "source": "361788263763984082", "type": "dependency" }, { "destination": "15454545641416021896", "source": "361788263763984082", "type": "dependency" }, { "destination": "4907284671342522495", "source": "361788263763984082", "type": "dependency" }, { "destination": "668374793965413715", "source": "361788263763984082", "type": "dependency" }, { "destination": "6691481082218553213", "source": "361788263763984082", "type": "dependency" }, { "destination": "15637586295358470019", "source": "361788263763984082", "type": "dependency" }, { "destination": "3532962956793359726", "source": "361788263763984082", "type": "dependency" }, { "destination": "17417302768367072513", "source": "361788263763984082", "type": "dependency" }, { "destination": "11319093924020824163", "source": "361788263763984082", "type": "dependency" }, { "destination": "10499516697614746202", "source": "361788263763984082", "type": "dependency" }, { "destination": "8702094278482792177", "source": "361788263763984082", "type": "dependency" } ], "using_module": "t30013" } ```