diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2020-08-26 23:31:45 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-02-04 00:27:13 +0100 |
| commit | be9dadc18949c6877f486eab9ee95237224a237e (patch) | |
| tree | f34fcd28a0acf43d54c4bf853a24800090a2761b /src/server/game/Chat/ChatCommands | |
| parent | 7b88fd607e974843481d3055eb2eebc53c2a4b49 (diff) | |
Common/Utilities: Centralize string -> T conversion in StringConvert.h (PR #25335)
(cherry picked from commit cd30e0b86ce6ee88386a91cebdf353fc55805c57)
Diffstat (limited to 'src/server/game/Chat/ChatCommands')
| -rw-r--r-- | src/server/game/Chat/ChatCommands/ChatCommandArgs.h | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h index 271d4850f2a..e2270c0259f 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h +++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h @@ -21,6 +21,7 @@ #include "ChatCommandHelpers.h" #include "ChatCommandTags.h" #include "SmartEnum.h" +#include "StringConvert.h" #include "Util.h" #include <charconv> #include <map> @@ -55,20 +56,10 @@ struct ArgInfo<T, std::enable_if_t<std::is_integral_v<T>>> char const* next = args; std::string_view token(args, Trinity::Impl::ChatCommands::tokenize(next)); - if (!token.length()) - return nullptr; - - std::from_chars_result result; - if (StringStartsWith(token, "0x")) - result = std::from_chars(token.data() + 2, token.data() + token.length(), val, 16); - else if (StringStartsWith(token, "0b")) - result = std::from_chars(token.data() + 2, token.data() + token.length(), val, 2); + if (Optional<T> v = StringTo<T>(token, 0)) + val = *v; else - result = std::from_chars(token.data(), token.data() + token.length(), val, 10); - - if ((token.data() + token.length()) != result.ptr) return nullptr; - return next; } }; |
