aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/PreparedStatement.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/database/Database/PreparedStatement.h')
-rw-r--r--src/server/database/Database/PreparedStatement.h63
1 files changed, 25 insertions, 38 deletions
diff --git a/src/server/database/Database/PreparedStatement.h b/src/server/database/Database/PreparedStatement.h
index e4bd08753f5..b920289623e 100644
--- a/src/server/database/Database/PreparedStatement.h
+++ b/src/server/database/Database/PreparedStatement.h
@@ -24,47 +24,34 @@
#include <vector>
#include <variant>
-#ifdef __APPLE__
-#undef TYPE_BOOL
-#endif
-
-//- This enum helps us differ data held in above union
-enum PreparedStatementValueType
-{
- TYPE_BOOL,
- TYPE_UI8,
- TYPE_UI16,
- TYPE_UI32,
- TYPE_UI64,
- TYPE_I8,
- TYPE_I16,
- TYPE_I32,
- TYPE_I64,
- TYPE_FLOAT,
- TYPE_DOUBLE,
- TYPE_STRING,
- TYPE_BINARY,
- TYPE_NULL
-};
-
struct PreparedStatementData
{
std::variant<
- bool, // TYPE_BOOL
- uint8, // TYPE_UI8
- uint16, // TYPE_UI16
- uint32, // TYPE_UI32
- uint64, // TYPE_UI64
- int8, // TYPE_I8
- int16, // TYPE_I16
- int32, // TYPE_UI32
- int64, // TYPE_UI64
- float, // TYPE_FLOAT
- double, // TYPE_DOUBLE
- std::string, // TYPE_STRING
- std::vector<uint8>> // TYPE_BINARY
- data;
- PreparedStatementValueType type;
+ bool,
+ uint8,
+ uint16,
+ uint32,
+ uint64,
+ int8,
+ int16,
+ int32,
+ int64,
+ float,
+ double,
+ std::string,
+ std::vector<uint8>,
+ std::nullptr_t
+ > data;
+
+ template<typename T>
+ static std::string ToString(T value);
+
+ static std::string ToString(bool value);
+ static std::string ToString(uint8 value);
+ static std::string ToString(int8 value);
+ static std::string ToString(std::string const& value);
+ static std::string ToString(std::vector<uint8> const& value);
+ static std::string ToString(std::nullptr_t);
};
//- Upper-level class that is used in code