fixed compilation

This commit is contained in:
Sascha Kühl 2025-02-02 22:13:52 +01:00
parent ded3daceb3
commit 89fb7e8a8d
3 changed files with 13 additions and 8 deletions

View File

@ -21,13 +21,17 @@ public:
utils::result<void, utils::error> attach(const std::string name, const std::string &parent = "") {
auto node = schema_node::make_node<Type>(*this, name);
attach_node(node, parent);
auto result = attach_node(node, parent);
if (!result) {
return utils::failure(result.err());
}
return utils::ok<void>();
}
template <typename Type, typename ParentType>
utils::result<void, utils::error> attach(const std::string name) {
// auto node = std::make_unique<schema_node>(*this);
auto node = schema_node::make_node<Type>(*this, name);
return utils::ok<void>();
}
@ -47,7 +51,7 @@ private:
utils::result<std::shared_ptr<schema_node>, utils::error> find_parent(const std::string &name) const;
utils::result<std::shared_ptr<schema_node>, utils::error> find_node(const std::string &name) const;
utils::result<std::shared_ptr<schema_node>, utils::error> push_back_child(const node_ptr &parent, const node_ptr &child);
void push_back_child(const node_ptr &parent, const node_ptr &child);
bool has_node(const std::type_index& index, const std::string &name) const;

View File

@ -14,7 +14,7 @@ class schema_node final {
public:
template < typename Type >
static std::shared_ptr<schema_node> make_node(schema& tree, const std::string& name) {
return std::make_shared<schema_node>(tree, name, static_cast<Type*>(nullptr));
return std::shared_ptr<schema_node>(new schema_node(tree, name, static_cast<Type*>(nullptr)));
}
schema_node(const schema_node& other) = delete;
@ -47,8 +47,8 @@ private:
schema_node(schema& tree, std::string name, Type *obj)
: schema_(tree)
, info_(std::make_unique<object_info<Type>>(*this))
, first_child_(std::make_shared<schema_node>(tree))
, last_child_(std::make_shared<schema_node>(tree))
, first_child_(std::shared_ptr<schema_node>(new schema_node(tree)))
, last_child_(std::shared_ptr<schema_node>(new schema_node(tree)))
, name_(std::move(name)) {
first_child_->next_sibling_ = last_child_;
last_child_->previous_sibling_ = first_child_;

View File

@ -34,7 +34,7 @@ utils::result<std::shared_ptr<schema_node>, utils::error> schema::attach_node(co
}
parent_node = *result;
result = push_back_child(root_, node);
push_back_child(root_, node);
// if (!pk.is_null()) {
// node->primary_key_ = pk;
@ -81,7 +81,8 @@ utils::result<std::shared_ptr<schema_node>, utils::error> schema::find_node(cons
}
return utils::ok(i->second);
}
utils::result<std::shared_ptr<schema_node>, utils::error> schema::push_back_child(const node_ptr &parent, const node_ptr &child) {
void schema::push_back_child(const node_ptr &parent, const node_ptr &child) {
child->parent_ = parent;
child->previous_sibling_ = parent->last_child_->previous_sibling_;
child->next_sibling_ = parent->last_child_;