18#ifndef TRINITY_CHATCOMMANDHELPERS_H
19#define TRINITY_CHATCOMMANDHELPERS_H
25#include <fmt/printf.h>
41 template <
typename T,
typename =
void>
51 explicit operator bool() {
return !
token.empty(); }
59 if (
size_t delimPos = args.find(
COMMAND_DELIMITER); delimPos != std::string_view::npos)
61 result.
token = args.substr(0, delimPos);
62 if (
size_t tailPos = args.find_first_not_of(
COMMAND_DELIMITER, delimPos); tailPos != std::string_view::npos)
63 result.
tail = args.substr(tailPos);
71 template <
typename T,
typename... Ts>
74 static constexpr bool value = (std::is_assignable_v<T&, Ts> && ...);
77 template <
typename... Ts>
80 static constexpr bool value =
false;
83 template <std::size_t index,
typename T1,
typename... Ts>
86 template <
typename T1,
typename... Ts>
92 template <std::size_t index,
typename... Ts>
121 std::variant<std::monostate, std::string_view, std::string>
_storage;
126 template <
typename... Ts>
129 return fmt::sprintf(
GetTrinityString(handler, which), std::forward<Ts>(args)...);
TokenizeResult tokenize(std::string_view args)
static constexpr char COMMAND_DELIMITER
typename tag_base< T >::type tag_base_t
std::string FormatTrinityString(ChatHandler const *handler, TrinityStrings which, Ts &&... args)
typename get_nth< index, Ts... >::type get_nth_t
TC_GAME_API char const * GetTrinityString(ChatHandler const *handler, TrinityStrings which)
TC_GAME_API void SendErrorMessageToHandler(ChatHandler *handler, std::string_view str)
ChatCommandResult(ChatCommandResult const &)=delete
ChatCommandResult(ChatCommandResult &&)=default
bool IsSuccessful() const
bool HasErrorMessage() const
std::variant< std::monostate, std::string_view, std::string > _storage
ChatCommandResult(std::string &&s)
ChatCommandResult(std::string_view s)
ChatCommandResult(std::nullopt_t)
ChatCommandResult & operator=(ChatCommandResult const &)=delete
std::string const & GetErrorMessage() const
ChatCommandResult(char const *c)
std::string_view operator*() const
ChatCommandResult & operator=(ChatCommandResult &&)=default
ChatCommandResult(std::string const &)=delete
static constexpr bool value