Added package diagram generation from C++20 modules (#101)

This commit is contained in:
Bartek Kryza
2023-12-21 23:39:59 +01:00
parent f09edd8b47
commit a8d646d1bc
18 changed files with 285 additions and 12 deletions

View File

@@ -25,8 +25,9 @@
namespace clanguml::common::model {
element::element(namespace_ using_namespace)
: using_namespace_{std::move(using_namespace)}
element::element(namespace_ using_namespace, path_type pt)
: ns_{pt}
, using_namespace_{std::move(using_namespace)}
{
}

View File

@@ -37,7 +37,9 @@ namespace clanguml::common::model {
*/
class element : public diagram_element {
public:
element(namespace_ using_namespace);
element(namespace_ using_namespace, path_type pt = path_type::kNamespace);
element(path_type pt);
~element() override = default;

View File

@@ -21,8 +21,8 @@
#include <sstream>
namespace clanguml::common::model {
package::package(const common::model::namespace_ &using_namespace)
: element{using_namespace}
package::package(const common::model::namespace_ &using_namespace, path_type pt)
: element{using_namespace, pt}
{
}

View File

@@ -41,7 +41,8 @@ class package : public element,
public stylable_element,
public nested_trait<element, path> {
public:
package(const common::model::path &using_namespace);
package(const common::model::path &using_namespace,
path_type pt = path_type::kNamespace);
package(const package &) = delete;
package(package &&) = default;

View File

@@ -386,6 +386,8 @@ public:
*/
path_type type() const { return path_type_; }
const container_type &tokens() const { return path_; }
private:
path_type path_type_;
container_type path_;