|
const std = @import("../std.zig"); const io = std.io; const testing = std.testing; |
CountingWriter()A Writer that counts how many bytes has been written to it. |
pub fn CountingWriter(comptime WriterType: type) type { return struct { bytes_written: u64, child_stream: WriterType, pub const Error = WriterType.Error; pub const Writer = io.Writer(*Self, Error, write); const Self = @This(); |
write() |
pub fn write(self: *Self, bytes: []const u8) Error!usize { const amt = try self.child_stream.write(bytes); self.bytes_written += amt; return amt; } |
writer() |
pub fn writer(self: *Self) Writer { return .{ .context = self }; } }; } |
countingWriter() |
pub fn countingWriter(child_stream: anytype) CountingWriter(@TypeOf(child_stream)) { return .{ .bytes_written = 0, .child_stream = child_stream }; } |
Test:io.CountingWriter |
test "io.CountingWriter" { var counting_stream = countingWriter(std.io.null_writer); const stream = counting_stream.writer(); const bytes = "yay" ** 100; stream.writeAll(bytes) catch unreachable; try testing.expect(counting_stream.bytes_written == bytes.len); } |
Generated by zstd-browse2 on 2023-11-04 14:12:29 -0400. |