TeaSpeakLibrary/src/linked_helper.h

30 lines
826 B
C++

#pragma once
#include <memory>
#include <deque>
namespace linked {
struct entry {
std::shared_ptr<entry> previous;
std::shared_ptr<entry> next;
std::shared_ptr<entry> child_head;
uint64_t parent_id;
uint64_t entry_id;
uint64_t previous_id;
bool fully_linked = false;
bool modified = false;
};
inline std::shared_ptr<entry> create_entry(uint64_t parent_id, uint64_t entry_id, uint64_t previous_id) {
auto result = std::make_shared<entry>();
result->parent_id = parent_id;
result->entry_id = entry_id;
result->previous_id = previous_id;
return result;
}
extern std::shared_ptr<entry> build_chain(const std::deque<std::shared_ptr<entry>>& /* entried */, std::deque<std::string>& /* error log */);
}