Added split namespace test case

This commit is contained in:
Bartek Kryza
2022-01-29 23:17:47 +01:00
parent 9aca8368b4
commit 50dd3ee1c5
10 changed files with 124 additions and 1 deletions

View File

@@ -80,4 +80,11 @@ void decorated_element::add_decorators(
decorators_.push_back(d);
}
}
void decorated_element::append(const decorated_element &de)
{
for (auto d : de.decorators()) {
decorators_.push_back(d);
}
}
}

View File

@@ -43,6 +43,8 @@ public:
void add_decorators(
const std::vector<std::shared_ptr<decorators::decorator>> &decorators);
void append(const decorated_element &de);
private:
std::vector<std::shared_ptr<decorators::decorator>> decorators_;
};

View File

@@ -64,4 +64,6 @@ const std::vector<relationship> &element::relationships() const
{
return relationships_;
}
void element::append(const element &e) { decorated_element::append(e); }
}

View File

@@ -52,6 +52,8 @@ public:
void add_relationship(relationship &&cr);
void append(const element &e);
protected:
const uint64_t m_id{0};

View File

@@ -37,8 +37,15 @@ class package_trait {
public:
void add_package(std::unique_ptr<T> p)
{
if (!util::contains(packages_, p.get()))
auto it = std::find_if(packages_.begin(), packages_.end(),
[&p](const auto &e) { return *e == *p; });
if (it != packages_.end()) {
(*it)->append(*p);
}
else {
packages_.emplace_back(std::move(p));
}
}
void add_package(std::vector<std::string> path, std::unique_ptr<T> p)