43#define DECLARE_FORMATTER(CLASS_NAME) \
44template <> struct std::formatter<CLASS_NAME> : std::formatter<std::string_view> \
46 template <typename FormatContext> \
47 auto format(const CLASS_NAME& item, FormatContext& ctx) const \
49 return std::formatter<std::string_view>::format(item.to_string(), ctx); \
54struct std::formatter<CLASS_NAME, wchar_t> : std::formatter<std::wstring_view, wchar_t> \
56 template <typename FormatContext> \
57 auto format(const CLASS_NAME& item, FormatContext& ctx) const \
59 auto str = item.to_string(); \
60 auto wstr = utility_module::convert_string::to_wstring(str); \
61 return std::formatter<std::wstring_view, wchar_t>::format(wstr, ctx); \
String encoding conversion, Base64 encoding/decoding utilities.