diff options
Diffstat (limited to 'src/server/database/Database/PreparedStatement.h')
-rw-r--r-- | src/server/database/Database/PreparedStatement.h | 63 |
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 |