authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-01-21 20:58:02+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-01-21 20:58:02+01:00
log59d0dda0803d8edd26d099025e0c0bcff5632e74
tree44f862c6beac8f67269090e148a6b5f99f916d0e
parentbc82e0f3d3aed55165902c37271af120fcd4f858

Make writeByteNTimes faster and leaner


1 files changed, 8 insertions(+), 4 deletions(-)

lib/std/io/out_stream.zig+8-4
......@@ -45,10 +45,14 @@ pub fn OutStream(comptime WriteError: type) type {
4545 }
4646
4747 pub fn writeByteNTimes(self: *Self, byte: u8, n: usize) Error!void {
48 const slice = @as(*const [1]u8, &byte)[0..];
49 var i: usize = 0;
50 while (i < n) : (i += 1) {
51 try self.writeFn(self, slice);
48 var bytes: [256]u8 = undefined;
49 mem.set(u8, bytes[0..], byte);
50
51 var remaining: usize = n;
52 while (remaining > 0) {
53 const to_write = std.math.min(remaining, bytes.len);
54 try self.writeFn(self, bytes[0..to_write]);
55 remaining -= to_write;
5256 }
5357 }
5458