diff options
Diffstat (limited to 'src/toml')
| -rw-r--r-- | src/toml/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | src/toml/TomlDocument.cpp | 49 | ||||
| -rw-r--r-- | src/toml/TomlParser.cpp | 45 |
3 files changed, 0 insertions, 100 deletions
diff --git a/src/toml/CMakeLists.txt b/src/toml/CMakeLists.txt deleted file mode 100644 index 33b31b8f..00000000 --- a/src/toml/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -add_library(CruToml - TomlDocument.cpp - TomlParser.cpp -) -target_compile_definitions(CruToml PRIVATE CRU_TOML_EXPORT_API) -target_link_libraries(CruToml PUBLIC CruBase) diff --git a/src/toml/TomlDocument.cpp b/src/toml/TomlDocument.cpp deleted file mode 100644 index af9e2ac8..00000000 --- a/src/toml/TomlDocument.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "cru/toml/TomlDocument.h" - -namespace cru::toml { -std::optional<std::string> TomlSection::GetValue(const std::string& key) const { - auto it = values_.find(key); - if (it == values_.end()) { - return std::nullopt; - } - return it->second; -} - -void TomlSection::SetValue(const std::string& key, std::string value) { - values_[key] = std::move(value); -} - -void TomlSection::DeleteValue(const std::string& key) { values_.erase(key); } - -TomlSection* TomlDocument::GetSection(const std::string& name) { - auto it = sections_.find(name); - if (it == sections_.end()) { - return nullptr; - } - return &it->second; -} - -const TomlSection* TomlDocument::GetSection(const std::string& name) const { - auto it = sections_.find(name); - if (it == sections_.end()) { - return nullptr; - } - return &it->second; -} - -TomlSection* TomlDocument::GetSectionOrCreate(const std::string& name) { - auto it = sections_.find(name); - if (it == sections_.end()) { - sections_[name] = TomlSection(); - return §ions_[name]; - } - return &it->second; -} - -void TomlDocument::SetSection(const std::string& name, TomlSection section) { - sections_[name] = std::move(section); -} - -void TomlDocument::DeleteSection(const std::string& name) { sections_.erase(name); } - -} // namespace cru::toml diff --git a/src/toml/TomlParser.cpp b/src/toml/TomlParser.cpp deleted file mode 100644 index 1aea5b73..00000000 --- a/src/toml/TomlParser.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "cru/toml/TomlParser.h" -#include "cru/base/StringUtil.h" -#include "cru/toml/TomlDocument.h" - -namespace cru::toml { -TomlParser::TomlParser(std::string input) : input_(std::move(input)) {} - -TomlParser::~TomlParser() = default; - -TomlDocument TomlParser::Parse() { - if (cache_) { - return *cache_; - } - - cache_ = TomlDocument(); - DoParse(*cache_); - return *cache_; -} - -void TomlParser::DoParse(TomlDocument& document) { - std::vector<std::string> lines = cru::string::Split(input_, "\n", cru::string::SplitOptions::RemoveSpace); - - std::string current_section_name; - - for (auto& line : lines) { - line = cru::string::Trim(line); - if (line.starts_with("[") && line.ends_with("]")) { - current_section_name = line.substr(1, line.size() - 2); - } else if (line.starts_with("#")) { - // Ignore comments. - } else { - auto equal_index = line.find('='); - - if (equal_index == std::string::npos) { - throw TomlParsingException("Invalid TOML line: " + line); - } - - auto key = cru::string::Trim(line.substr(0, equal_index)); - auto value = cru::string::Trim(line.substr(equal_index + 1)); - - document.GetSectionOrCreate(current_section_name)->SetValue(key, value); - } - } -} -} // namespace cru::toml |
