comparison include/core/strings.h @ 369:47c9f8502269

*: clang-format all the things I've edited the formatting a bit. Now pointer asterisks (and reference ampersands) are on the variable instead of the type, as well as having newlines for function braces (but nothing else)
author Paper <paper@tflc.us>
date Fri, 25 Jul 2025 10:16:02 -0400
parents 6b0768158dcd
children
comparison
equal deleted inserted replaced
368:6d37a998cf91 369:47c9f8502269
14 namespace Strings { 14 namespace Strings {
15 15
16 /* Implode function: takes a vector of strings and turns it 16 /* Implode function: takes a vector of strings and turns it
17 * into a string, separated by delimiters. 17 * into a string, separated by delimiters.
18 */ 18 */
19 std::string Implode(const std::vector<std::string>& vector, const std::string& delimiter); 19 std::string Implode(const std::vector<std::string> &vector, const std::string &delimiter);
20 std::vector<std::string> Split(const std::string& text, const std::string& delimiter); 20 std::vector<std::string> Split(const std::string &text, const std::string &delimiter);
21 21
22 /* Substring removal functions */ 22 /* Substring removal functions */
23 void ReplaceAll(std::string& string, std::string_view find, std::string_view replace); 23 void ReplaceAll(std::string &string, std::string_view find, std::string_view replace);
24 void NormalizeUnicode(std::string& string); 24 void NormalizeUnicode(std::string &string);
25 void NormalizeAnimeTitle(std::string& string); 25 void NormalizeAnimeTitle(std::string &string);
26 26
27 /* stupid HTML bullshit */ 27 /* stupid HTML bullshit */
28 void TextifySynopsis(std::string& string); 28 void TextifySynopsis(std::string &string);
29 29
30 std::string ToUpper(const std::string& string); 30 std::string ToUpper(const std::string &string);
31 std::string ToLower(const std::string& string); 31 std::string ToLower(const std::string &string);
32 32
33 /* functions that make the way we convert from and to 33 /* functions that make the way we convert from and to
34 * different string formats universal (and these functions 34 * different string formats universal (and these functions
35 * typically do things the right way so we avoid retarded 35 * typically do things the right way so we avoid retarded
36 * code) 36 * code)
37 */ 37 */
38 std::wstring ToWstring(const std::string& string); 38 std::wstring ToWstring(const std::string &string);
39 std::wstring ToWstring(const QString& string); 39 std::wstring ToWstring(const QString &string);
40 std::string ToUtf8String(const std::wstring& wstring); 40 std::string ToUtf8String(const std::wstring &wstring);
41 std::string ToUtf8String(const QString& string); 41 std::string ToUtf8String(const QString &string);
42 std::string ToUtf8String(const QByteArray& ba); 42 std::string ToUtf8String(const QByteArray &ba);
43 std::string ToUtf8String(const std::u32string& u32string); 43 std::string ToUtf8String(const std::u32string &u32string);
44 std::u32string ToUcs4String(const std::string& string); 44 std::u32string ToUcs4String(const std::string &string);
45 QString ToQString(const std::string& string); 45 QString ToQString(const std::string &string);
46 QString ToQString(const std::wstring& wstring); 46 QString ToQString(const std::wstring &wstring);
47 47
48 /* not really an "int"... but who cares? */ 48 /* not really an "int"... but who cares? */
49 template<typename T = int, std::enable_if_t<std::is_arithmetic<T>::value, bool> = true> 49 template<typename T = int, std::enable_if_t<std::is_arithmetic<T>::value, bool> = true>
50 T ToInt(const std::string& str, T def = 0) { 50 T ToInt(const std::string &str, T def = 0)
51 {
51 std::istringstream s(str); 52 std::istringstream s(str);
52 s >> std::noboolalpha >> def; 53 s >> std::noboolalpha >> def;
53 return def; 54 return def;
54 } 55 }
55 56
56 template<typename T, std::enable_if_t<std::is_arithmetic<T>::value && !std::is_same<T, bool>::value, bool> = true> 57 template<typename T, std::enable_if_t<std::is_arithmetic<T>::value && !std::is_same<T, bool>::value, bool> = true>
57 std::string ToUtf8String(T i) { 58 std::string ToUtf8String(T i)
59 {
58 std::ostringstream s; 60 std::ostringstream s;
59 s << std::noboolalpha << i; 61 s << std::noboolalpha << i;
60 return s.str(); 62 return s.str();
61 } 63 }
62 64
63 bool ToBool(const std::string& s, bool def); 65 bool ToBool(const std::string &s, bool def);
64 66
65 std::string ToUtf8String(bool b); 67 std::string ToUtf8String(bool b);
66 68
67 uint64_t HumanReadableSizeToBytes(const std::string& str); 69 uint64_t HumanReadableSizeToBytes(const std::string &str);
68 std::string BytesToHumanReadableSize(uint64_t bytes, int precision = 2); 70 std::string BytesToHumanReadableSize(uint64_t bytes, int precision = 2);
69 71
70 void RemoveLeadingChars(std::string& s, const char c); 72 void RemoveLeadingChars(std::string &s, const char c);
71 void RemoveTrailingChars(std::string& s, const char c); 73 void RemoveTrailingChars(std::string &s, const char c);
72 74
73 bool BeginningMatchesSubstring(const std::string& str, const std::string& sub); 75 bool BeginningMatchesSubstring(const std::string &str, const std::string &sub);
74 76
75 std::string Translate(const char* str); 77 std::string Translate(const char *str);
76 78
77 }; // namespace Strings 79 }; // namespace Strings
78 80
79 #endif // MINORI_CORE_STRINGS_H_ 81 #endif // MINORI_CORE_STRINGS_H_