diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Utilities/StringFormat.h | 7 | ||||
-rw-r--r-- | src/server/game/Chat/ChatCommands/ChatCommandTags.h | 13 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/common/Utilities/StringFormat.h b/src/common/Utilities/StringFormat.h index 5802ae8d617..7c136185f4a 100644 --- a/src/common/Utilities/StringFormat.h +++ b/src/common/Utilities/StringFormat.h @@ -23,7 +23,7 @@ namespace Trinity { template<typename... Args> - using FormatString = std::string_view; + using FormatString = fmt::format_string<Args...>; /// Default TC string format function. template<typename... Args> @@ -56,6 +56,11 @@ namespace Trinity { return fmt.empty(); } + + inline constexpr bool IsFormatEmptyOrNull(fmt::string_view fmt) + { + return fmt.size() == 0; + } } #endif diff --git a/src/server/game/Chat/ChatCommands/ChatCommandTags.h b/src/server/game/Chat/ChatCommands/ChatCommandTags.h index 939d4a6448f..ed627a50111 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommandTags.h +++ b/src/server/game/Chat/ChatCommands/ChatCommandTags.h @@ -310,4 +310,17 @@ namespace Trinity::ChatCommands }; } +template <typename T1, typename... Ts> +struct fmt::formatter<Trinity::ChatCommands::Variant<T1, Ts...>> : ostream_formatter {}; + +template <typename T1, typename... Ts> +struct fmt::printf_formatter<Trinity::ChatCommands::Variant<T1, Ts...>> : formatter<T1> +{ + template <typename T, typename OutputIt> + auto format(T const& value, basic_format_context<OutputIt, char>& ctx) const -> OutputIt + { + return formatter<T1>::format(*value, ctx); + } +}; + #endif |