mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
- Deprecated DString.append_chars, use DString.append_string
- Deprecated `DString.append_string` for DStrings, use `DString.append_dstring` instead. - Added `DString.append_char_buffer`.
This commit is contained in:
@@ -95,7 +95,7 @@ fn void DString.replace(&self, String needle, String replacement)
|
||||
match++;
|
||||
if (match == needle_len)
|
||||
{
|
||||
self.append_chars(replacement);
|
||||
self.append_string(replacement);
|
||||
match = 0;
|
||||
continue;
|
||||
}
|
||||
@@ -103,12 +103,12 @@ fn void DString.replace(&self, String needle, String replacement)
|
||||
}
|
||||
if (match > 0)
|
||||
{
|
||||
self.append_chars(str[i - match:match]);
|
||||
self.append_string(str[i - match:match]);
|
||||
match = 0;
|
||||
}
|
||||
self.append_char(c);
|
||||
}
|
||||
if (match > 0) self.append_chars(str[^match:match]);
|
||||
if (match > 0) self.append_string(str[^match:match]);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -305,13 +305,18 @@ fn bool DString.less(self, DString other_string)
|
||||
return true;
|
||||
}
|
||||
|
||||
fn void DString.append_chars(&self, String str)
|
||||
fn void DString.append_chars(&self, String str) @deprecated("Use append_string")
|
||||
{
|
||||
self.append_char_buffer(str);
|
||||
}
|
||||
|
||||
fn void DString.append_char_buffer(&self, char[] str)
|
||||
{
|
||||
usz other_len = str.len;
|
||||
if (!other_len) return;
|
||||
if (!*self)
|
||||
{
|
||||
*self = temp(str);
|
||||
*self = temp((String)str);
|
||||
return;
|
||||
}
|
||||
self.reserve(other_len);
|
||||
@@ -325,7 +330,24 @@ fn Char32[] DString.copy_utf32(&self, Allocator allocator)
|
||||
return self.str_view().to_utf32(allocator) @inline!!;
|
||||
}
|
||||
|
||||
fn void DString.append_string(&self, DString str)
|
||||
<*
|
||||
@require $typeof(str) == String || $typeof(str) == DString : "Expected string or DString"
|
||||
*>
|
||||
macro void DString.append_string(&self, str)
|
||||
{
|
||||
$if $typeof(str) == String:
|
||||
self.append_char_buffer(str);
|
||||
$else
|
||||
self.append_string_deprecated(str);
|
||||
$endif
|
||||
}
|
||||
|
||||
macro void DString.append_string_deprecated(&self, DString str) @deprecated("Use .append_dstring()")
|
||||
{
|
||||
self.append_dstring(str);
|
||||
}
|
||||
|
||||
fn void DString.append_dstring(&self, DString str)
|
||||
{
|
||||
StringData* other = str.data();
|
||||
if (!other) return;
|
||||
@@ -340,7 +362,7 @@ fn void DString.clear(self)
|
||||
|
||||
fn usz? DString.write(&self, char[] buffer) @dynamic
|
||||
{
|
||||
self.append_chars((String)buffer);
|
||||
self.append_char_buffer(buffer);
|
||||
return buffer.len;
|
||||
}
|
||||
|
||||
@@ -400,9 +422,9 @@ macro void DString.append(&self, value)
|
||||
$case ichar:
|
||||
self.append_char(value);
|
||||
$case DString:
|
||||
self.append_string(value);
|
||||
self.append_dstring(value);
|
||||
$case String:
|
||||
self.append_chars(value);
|
||||
self.append_string(value);
|
||||
$case Char32:
|
||||
self.append_char32(value);
|
||||
$default:
|
||||
@@ -410,7 +432,7 @@ macro void DString.append(&self, value)
|
||||
$case $defined((Char32)value):
|
||||
self.append_char32((Char32)value);
|
||||
$case $defined((String)value):
|
||||
self.append_chars((String)value);
|
||||
self.append_string((String)value);
|
||||
$default:
|
||||
$error "Unsupported type for append – use appendf instead.";
|
||||
$endswitch
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
- Add `poly1305` one-time Message Authentication Code and associated tests. #2639
|
||||
- Add `Elf32_Shdr` and `Elf64_Shdr` to `std::os::linux`.
|
||||
- Add `any.to` and `any.as`.
|
||||
- Deprecated `DString.append_chars`, use `DString.append_string`
|
||||
- Deprecated `DString.append_string` for DStrings, use `DString.append_dstring` instead.
|
||||
- Added `DString.append_char_buffer`.
|
||||
|
||||
## 0.7.8 Change list
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ fn void main()
|
||||
ms.dyn[i].tinit();
|
||||
}
|
||||
|
||||
ms.dyn[0].append_chars("sad");
|
||||
ms.dyn[0].append_string("sad");
|
||||
ms.dyn[0].append("sad");
|
||||
};
|
||||
}
|
||||
@@ -96,7 +96,7 @@ fn void test_append()
|
||||
assert(s == "éèà", "got '%s'; want 'éèà'", s);
|
||||
str.clear();
|
||||
|
||||
str.append_chars("foo");
|
||||
str.append_string("foo");
|
||||
s = str.str_view();
|
||||
assert(s == "foo", "got '%s'; want 'foo'", s);
|
||||
str.clear();
|
||||
@@ -113,7 +113,7 @@ fn void test_append()
|
||||
assert(s == "xxxyyy", "got '%s'; want 'xxxyyy'", s);
|
||||
|
||||
str3.clear();
|
||||
str3.append_string(str2);
|
||||
str3.append_dstring(str2);
|
||||
s = str3.str_view();
|
||||
assert(s == "yyy", "got '%s'; want 'yyy'", s);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user