diff --git a/packages/serialization/source/common/TrivialData.cpp b/packages/serialization/source/common/TrivialData.cpp new file mode 100644 index 00000000..e32f4dbc --- /dev/null +++ b/packages/serialization/source/common/TrivialData.cpp @@ -0,0 +1,39 @@ +#include "logging/String.h" + +#include "serialization/TrivialData.h" + +#include +#include +#include + +namespace l::serialization { + + std::vector ParseTrivialData(std::stringstream& data, std::string_view separators) { + + std::vector out; + + for (std::string line; std::getline(data, line, '\n');) { + auto elements = l::string::split(line, separators); + for (auto it : elements) { + out.push_back(std::string(it)); + } + } + + return out; + } + + std::unordered_map ParseTrivialDataMap(std::stringstream& data, std::string_view separators) { + + auto out = ParseTrivialData(data, separators); + + std::unordered_map map; + + for (int i = 0; i < out.size() / 2; i++) { + uint32_t key = l::string::string_id(out[i * 2]); + map[key] = out[i * 2 + 1]; + } + + return map; + } + +}