summaryrefslogtreecommitdiff
path: root/Simulator/include/database/QueryResult.h
diff options
context:
space:
mode:
Diffstat (limited to 'Simulator/include/database/QueryResult.h')
-rw-r--r--Simulator/include/database/QueryResult.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/Simulator/include/database/QueryResult.h b/Simulator/include/database/QueryResult.h
new file mode 100644
index 00000000..c1534be3
--- /dev/null
+++ b/Simulator/include/database/QueryResult.h
@@ -0,0 +1,25 @@
+#pragma once
+#include <tuple>
+
+namespace Database
+{
+ template<class ...ReturnTypes>
+ class QueryResult
+ {
+ public:
+ explicit QueryResult(ReturnTypes... returnValues) : values(returnValues...) {}
+ explicit QueryResult(std::tuple<ReturnTypes...> returnValues) : values(returnValues) {}
+
+ /*
+ Returns the item at the given index.
+ ReturnType must be the same as the type of the item at position Index in the tuple.
+ */
+ template<class ReturnType, int Index>
+ ReturnType get()
+ {
+ return std::get<Index>(values);
+ }
+
+ std::tuple<ReturnTypes...> values;
+ };
+}