authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-26 03:04:18 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-26 03:04:18 -07:00
logdd568a92c67a23bd1f64051deac876ddefd1c1de
treefcd8ee1f711e945db62e5ad1846d45a7ec3cbe1d
parent27aef9a965cb9febfa4d1a767d0fb107b0c0f92d
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

AllocatingWriter: add appendAssumeCapacity


1 files changed, 7 insertions(+), 3 deletions(-)

allocating_writer.zig+7-3
......@@ -55,6 +55,11 @@ pub const AllocatingWriter = struct {
5555 return self.allocatedSlice()[self.items.len..];
5656 }
5757
58 fn appendAssumeCapacity(self: *AllocatingWriter, bytes: []const u8) void {
59 @memcpy(self.unusedSlice()[0..bytes.len], bytes);
60 self.items.len += bytes.len;
61 }
62
5863 const W = nio.Writable(@This(), ._var);
5964 pub const writeAll = W.writeAll;
6065 pub const writevAll = W.writevAll;
......@@ -69,15 +74,14 @@ pub const AllocatingWriter = struct {
6974
7075 pub fn write(self: *AllocatingWriter, bytes: []const u8) WriteError!usize {
7176 try self.ensureUnusedCapacity(bytes.len);
72 @memcpy(self.unusedSlice()[0..bytes.len], bytes);
73 self.items.len += bytes.len;
77 self.appendAssumeCapacity(bytes);
7478 return bytes.len;
7579 }
7680 pub fn writev(self: *AllocatingWriter, iovec: []const sys.struct_iovec) WriteError!usize {
7781 var len: usize = 0;
7882 for (iovec) |vec| len += vec.len;
7983 try self.ensureUnusedCapacity(len);
80 for (iovec) |vec| _ = self.write(vec.base[0..vec.len]) catch unreachable;
84 for (iovec) |vec| self.appendAssumeCapacity(vec.base[0..vec.len]);
8185 return len;
8286 }
8387};