aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/dataloader/NodeTools.cpp
diff options
context:
space:
mode:
author hop311 <hop3114@gmail.com>2023-10-20 10:16:38 +0200
committer hop311 <hop3114@gmail.com>2023-10-20 10:16:38 +0200
commitd2e91829abc8dd46fa4685d1cab89ef6fe907471 (patch)
tree3a3c32d8f631fefda101ec3b47147da3bb81e297 /src/openvic-simulation/dataloader/NodeTools.cpp
parentab696e8469b1417b69d6b3aa5d46a69d370613a0 (diff)
Separated node->string and string->value parsing
Diffstat (limited to 'src/openvic-simulation/dataloader/NodeTools.cpp')
-rw-r--r--src/openvic-simulation/dataloader/NodeTools.cpp48
1 files changed, 26 insertions, 22 deletions
diff --git a/src/openvic-simulation/dataloader/NodeTools.cpp b/src/openvic-simulation/dataloader/NodeTools.cpp
index 85bc572..c99a2f0 100644
--- a/src/openvic-simulation/dataloader/NodeTools.cpp
+++ b/src/openvic-simulation/dataloader/NodeTools.cpp
@@ -103,18 +103,20 @@ node_callback_t NodeTools::expect_uint64(callback_t<uint64_t> callback) {
);
}
-node_callback_t NodeTools::expect_fixed_point(callback_t<fixed_point_t> callback) {
- return expect_identifier(
- [callback](std::string_view identifier) -> bool {
- bool successful = false;
- const fixed_point_t val = fixed_point_t::parse(identifier.data(), identifier.length(), &successful);
- if (successful) {
- return callback(val);
- }
- Logger::error("Invalid fixed point identifier text: ", identifier);
- return false;
+callback_t<std::string_view> NodeTools::expect_fixed_point_str(callback_t<fixed_point_t> callback) {
+ return [callback](std::string_view identifier) -> bool {
+ bool successful = false;
+ const fixed_point_t val = fixed_point_t::parse(identifier.data(), identifier.length(), &successful);
+ if (successful) {
+ return callback(val);
}
- );
+ Logger::error("Invalid fixed point identifier text: ", identifier);
+ return false;
+ };
+}
+
+node_callback_t NodeTools::expect_fixed_point(callback_t<fixed_point_t> callback) {
+ return expect_identifier(expect_fixed_point_str(callback));
}
node_callback_t NodeTools::expect_colour(callback_t<colour_t> callback) {
@@ -142,18 +144,20 @@ node_callback_t NodeTools::expect_colour(callback_t<colour_t> callback) {
};
}
-node_callback_t NodeTools::expect_date(callback_t<Date> callback) {
- return expect_identifier(
- [callback](std::string_view identifier) -> bool {
- bool successful = false;
- const Date date = Date::from_string(identifier, &successful);
- if (successful) {
- return callback(date);
- }
- Logger::error("Invalid date identifier text: ", identifier);
- return false;
+callback_t<std::string_view> NodeTools::expect_date_str(callback_t<Date> callback) {
+ return [callback](std::string_view identifier) -> bool {
+ bool successful = false;
+ const Date date = Date::from_string(identifier, &successful);
+ if (successful) {
+ return callback(date);
}
- );
+ Logger::error("Invalid date identifier text: ", identifier);
+ return false;
+ };
+}
+
+node_callback_t NodeTools::expect_date(callback_t<Date> callback) {
+ return expect_identifier(expect_date_str(callback));
}
node_callback_t NodeTools::expect_years(callback_t<Timespan> callback) {