aboutsummaryrefslogtreecommitdiff
path: root/src/toml/TomlParser.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-10-17 09:46:56 +0800
committerYuqian Yang <crupest@crupest.life>2025-10-17 09:46:56 +0800
commit9e4419826b3e23c63567591701a2834a837da98e (patch)
tree763838a83850f5cb07cff43915aa6be3a689bef0 /src/toml/TomlParser.cpp
parenta6b5b8b879a9a587ec0ad605722d5d6428d5e68c (diff)
downloadcru-9e4419826b3e23c63567591701a2834a837da98e.tar.gz
cru-9e4419826b3e23c63567591701a2834a837da98e.tar.bz2
cru-9e4419826b3e23c63567591701a2834a837da98e.zip
Toml remove String.
Diffstat (limited to 'src/toml/TomlParser.cpp')
-rw-r--r--src/toml/TomlParser.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/toml/TomlParser.cpp b/src/toml/TomlParser.cpp
index 14442c3c..1aea5b73 100644
--- a/src/toml/TomlParser.cpp
+++ b/src/toml/TomlParser.cpp
@@ -1,8 +1,9 @@
#include "cru/toml/TomlParser.h"
+#include "cru/base/StringUtil.h"
#include "cru/toml/TomlDocument.h"
namespace cru::toml {
-TomlParser::TomlParser(String input) : input_(std::move(input)) {}
+TomlParser::TomlParser(std::string input) : input_(std::move(input)) {}
TomlParser::~TomlParser() = default;
@@ -17,25 +18,25 @@ TomlDocument TomlParser::Parse() {
}
void TomlParser::DoParse(TomlDocument& document) {
- std::vector<String> lines = input_.SplitToLines(true);
+ std::vector<std::string> lines = cru::string::Split(input_, "\n", cru::string::SplitOptions::RemoveSpace);
- String current_section_name;
+ std::string current_section_name;
for (auto& line : lines) {
- line.Trim();
- if (line.StartWith(u"[") && line.EndWith(u"]")) {
+ line = cru::string::Trim(line);
+ if (line.starts_with("[") && line.ends_with("]")) {
current_section_name = line.substr(1, line.size() - 2);
- } else if (line.StartWith(u"#")) {
+ } else if (line.starts_with("#")) {
// Ignore comments.
} else {
- auto equal_index = line.Find(u'=');
+ auto equal_index = line.find('=');
- if (equal_index == -1) {
- throw TomlParsingException("Invalid TOML line: " + line.ToUtf8());
+ if (equal_index == std::string::npos) {
+ throw TomlParsingException("Invalid TOML line: " + line);
}
- auto key = line.substr(0, equal_index).Trim();
- auto value = line.substr(equal_index + 1).Trim();
+ 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);
}