18#ifndef TRINITYCORE_STRING_FORMAT_H
19#define TRINITYCORE_STRING_FORMAT_H
27 template<
typename... Args>
34 template<
typename... Args>
35 constexpr auto MakeFormatArgs(Args&&... args) {
return fmt::make_format_args(args...); }
38 template<
typename... Args>
43 return fmt::format(
fmt, std::forward<Args>(args)...);
45 catch (std::exception
const& formatError)
47 return fmt::format(
"An error occurred formatting string \"{}\" : {}",
FormatStringView(
fmt), formatError.what());
51 template<
typename OutputIt,
typename... Args>
56 return fmt::format_to(out,
fmt, std::forward<Args>(args)...);
58 catch (std::exception
const& formatError)
60 return fmt::format_to(out,
"An error occurred formatting string \"{}\" : {}",
FormatStringView(
fmt), formatError.what());
68 return fmt::vformat(
fmt, args);
70 catch (std::exception
const& formatError)
72 return fmt::format(
"An error occurred formatting string \"{}\" : {}",
fmt, formatError.what());
76 template<
typename OutputIt>
81 return fmt::vformat_to(out,
fmt, args);
83 catch (std::exception
const& formatError)
85 return fmt::format_to(out,
"An error occurred formatting string \"{}\" : {}",
fmt, formatError.what());
92 return fmt ==
nullptr;
109 return fmt.size() == 0;
113template<
typename T,
typename Char>
116 template<
typename FormatContext>
119 if (value.has_value())
127template <
typename E, std::enable_if_t<std::is_enum_v<E>, std::
nullptr_t> =
nullptr>
128auto format_as(E e) {
return std::underlying_type_t<E>(e); }
std::optional< T > Optional
Optional helper class to wrap optional values within.
fmt::format_args FormatArgs
OutputIt StringFormatTo(OutputIt out, FormatString< Args... > fmt, Args &&... args)
std::string StringVFormat(FormatStringView fmt, FormatArgs args)
std::string StringFormat(FormatString< Args... > fmt, Args &&... args)
Default TC string format function.
bool IsFormatEmptyOrNull(char const *fmt)
Returns true if the given char pointer is null.
fmt::format_string< Args... > FormatString
constexpr auto MakeFormatArgs(Args &&... args)
OutputIt StringVFormatTo(OutputIt out, FormatStringView fmt, FormatArgs args)
fmt::string_view FormatStringView