From 398377011cb3d3c970451dcd215f3610159f1ae2 Mon Sep 17 00:00:00 2001 From: hop311 Date: Wed, 6 Dec 2023 22:10:53 +0000 Subject: Vec/set callbacks + crime file + prov building pos --- src/openvic-simulation/dataloader/NodeTools.hpp | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/openvic-simulation/dataloader/NodeTools.hpp') diff --git a/src/openvic-simulation/dataloader/NodeTools.hpp b/src/openvic-simulation/dataloader/NodeTools.hpp index 1ca6cf0..45e6d4f 100644 --- a/src/openvic-simulation/dataloader/NodeTools.hpp +++ b/src/openvic-simulation/dataloader/NodeTools.hpp @@ -7,6 +7,7 @@ #include #include #include +#include #include @@ -320,5 +321,34 @@ namespace OpenVic { return true; }; } + + template + Callback auto vector_callback(std::vector& vec) { + return [&vec](T val) -> bool { + vec.emplace_back(std::move(val)); + return true; + }; + } + + template + Callback auto vector_callback(std::vector& vec) { + return vector_callback(vec); + } + + template + Callback auto vector_callback_pointer(std::vector& vec) { + return [&vec](T const& val) -> bool { + vec.emplace_back(&val); + return true; + }; + } + + template + Callback auto set_callback_pointer(std::unordered_set& set) { + return [&set](T const& val) -> bool { + set.insert(&val); + return true; + }; + } } } -- cgit v1.2.3-56-ga3b1