authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-27 02:48:17 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-27 02:48:17 -07:00
log01b969afa3c984b92eeb62a40529cc803786dab5
tree176fc3e93165fc8cdfd8591b8d418506d9cd8d64
parentf799e3606855e2abffe68506759b5924442b1071
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

AllocatingWriter: add replaceRangeAssumeCapacity


1 files changed, 10 insertions(+), 0 deletions(-)

allocating_writer.zig+10
......@@ -85,6 +85,16 @@ pub const AllocatingWriter = struct {
8585 self.capacity = 0;
8686 }
8787
88 pub fn replaceRangeAssumeCapacity(self: *AllocatingWriter, start: usize, len: usize, new_items: []const u8) void {
89 std.debug.assert(self.capacity - self.items.len >= new_items.len -| len);
90 const tail = self.items[start + len ..];
91 const vacated = self.items[self.items.len - (len -| new_items.len) ..];
92 self.items.len = self.items.len - len + new_items.len;
93 @memmove(self.items[start + new_items.len ..], tail);
94 @memcpy(self.items[start..][0..new_items.len], new_items);
95 @memset(vacated, undefined);
96 }
97
8898 const W = nio.Writable(@This(), ._var);
8999 pub const writeAll = W.writeAll;
90100 pub const writevAll = W.writevAll;