Remove String clipping constructors.

Callers should instead call constructors with explicit encoding names, with known length `Span`.
This commit is contained in:
Lukas Tenbrink 2025-03-14 16:54:44 +01:00
parent b377562b52
commit a23f630781
12 changed files with 24 additions and 41 deletions

View file

@ -252,15 +252,9 @@ class String {
void parse_latin1(const char *p_cstr) {
parse_latin1(Span(p_cstr, p_cstr ? strlen(p_cstr) : 0));
}
void parse_latin1(const char *p_cstr, int p_clip_to) {
parse_latin1(Span(p_cstr, p_cstr ? _strlen_clipped(p_cstr, p_clip_to) : 0));
}
void parse_utf32(const char32_t *p_cstr) {
parse_utf32(Span(p_cstr, p_cstr ? strlen(p_cstr) : 0));
}
void parse_utf32(const char32_t *p_cstr, int p_clip_to) {
parse_utf32(Span(p_cstr, p_cstr ? _strlen_clipped(p_cstr, p_clip_to) : 0));
}
// wchar_t copy_from depends on the platform.
void parse_wstring(const Span<wchar_t> &p_cstr) {
@ -281,15 +275,6 @@ class String {
parse_utf32((const char32_t *)p_cstr);
#endif
}
void parse_wstring(const wchar_t *p_cstr, int p_clip_to) {
#ifdef WINDOWS_ENABLED
// wchar_t is 16-bit, parse as UTF-16
parse_utf16((const char16_t *)p_cstr, p_clip_to);
#else
// wchar_t is 32-bit, copy directly
parse_utf32((const char32_t *)p_cstr, p_clip_to);
#endif
}
bool _base_is_subsequence_of(const String &p_string, bool case_insensitive) const;
int _count(const String &p_string, int p_from, int p_to, bool p_case_insensitive) const;
@ -540,6 +525,11 @@ public:
static String utf16(const Span<char16_t> &p_range) { return utf16(p_range.ptr(), p_range.size()); }
void parse_utf32(const Span<char32_t> &p_cstr);
static String utf32(const Span<char32_t> &p_span) {
String string;
string.parse_utf32(p_span);
return string;
}
static uint32_t hash(const char32_t *p_cstr, int p_len); /* hash the string */
static uint32_t hash(const char32_t *p_cstr); /* hash the string */
@ -633,15 +623,6 @@ public:
String(const char32_t *p_cstr) {
parse_utf32(p_cstr);
}
String(const char *p_cstr, int p_clip_to_len) {
parse_latin1(p_cstr, p_clip_to_len);
}
String(const wchar_t *p_cstr, int p_clip_to_len) {
parse_wstring(p_cstr, p_clip_to_len);
}
String(const char32_t *p_cstr, int p_clip_to_len) {
parse_utf32(p_cstr, p_clip_to_len);
}
// Copy assignment for NULL terminated C strings.
void operator=(const char *p_cstr) {