aboutsummaryrefslogtreecommitdiff
path: root/src/toml
diff options
context:
space:
mode:
Diffstat (limited to 'src/toml')
-rw-r--r--src/toml/CMakeLists.txt6
-rw-r--r--src/toml/TomlDocument.cpp49
-rw-r--r--src/toml/TomlParser.cpp45
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 &sections_[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