GigaPasjans
Loading...
Searching...
No Matches
StringUtil.h
1// Plik utworzony przez Piotra ChudziƄskiego w dniu 11.04.2025
2#pragma once
3
4#include "String.h"
5#include "WideString.h"
6
12{
13public:
18 static WideString GetUTF16String(const String &other);
19
24 static String GetUTF8String(const WideString &other);
25};
26
31template<>
32struct fmt::formatter<String>
33{
34public:
36 constexpr auto parse(const format_parse_context &ctx)
37 {
38 return ctx.begin();
39 }
40
42 template<typename Context>
43 constexpr auto format(String const &str, Context &ctx) const
44 {
45 return format_to(ctx.out(), "{}", str.Get());
46 }
47};
48
53template<>
54struct fmt::formatter<WideString>
55{
56public:
58 constexpr auto parse(const format_parse_context &ctx)
59 {
60 return ctx.begin();
61 }
62
64 template<typename Context>
65 constexpr auto format(WideString const &str, Context &ctx) const
66 {
67 return format_to(ctx.out(), "{}", StringUtil::GetUTF8String(str.Get()));
68 }
69};
70
75template<>
76struct std::hash<String>
77{
78 std::size_t operator()(const String &k) const noexcept
79 {
80 return k.HashCode();
81 }
82};
83
88template<>
89struct std::hash<WideString>
90{
91 std::size_t operator()(const WideString &k) const noexcept
92 {
93 return k.HashCode();
94 }
95};
96
97#define FORMAT(...) fmt::format(__VA_ARGS__)
Represents a mutable sequence of characters, providing various member functions for string manipulati...
Definition String.h:16
FORCE_INLINE char * Get() const
Gets a raw char sequence.
Definition String.h:163
A utility which contains essential methods for string operations.
Definition StringUtil.h:12
static String GetUTF8String(const WideString &other)
Returns UTF-8 string converted from UTF-16 string.
Definition Strings.cpp:139
static WideString GetUTF16String(const String &other)
Returns UTF-16 string converted from UTF-8 string.
Definition Strings.cpp:133
Represents a mutable sequence of utf-16 characters, providing various member functions for string man...
Definition WideString.h:14
wchar_t * Get() const
Gets a raw char sequence.
Definition WideString.h:177
constexpr auto format(String const &str, Context &ctx) const
Definition StringUtil.h:43
constexpr auto parse(const format_parse_context &ctx)
Definition StringUtil.h:36
constexpr auto format(WideString const &str, Context &ctx) const
Definition StringUtil.h:65
constexpr auto parse(const format_parse_context &ctx)
Definition StringUtil.h:58