diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-03-11 18:54:52 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-11 18:54:52 -0400 |
| commit | 895f67cc6dfe3ade4b635c4c2168843b022edee7 (patch) | |
| tree | 78f817084e76780c1b3eaab961657b168736e4d3 /lib/std/atomic/queue.zig | |
| parent | 571f3ed161455074be5f296b39b24cba554da8e0 (diff) | |
| parent | 06d2f53ece7328e6beedd5c846a5b25798ba74e3 (diff) | |
| download | zig-895f67cc6dfe3ade4b635c4c2168843b022edee7.tar.gz zig-895f67cc6dfe3ade4b635c4c2168843b022edee7.zip | |
Merge pull request #4710 from ziglang/io-stream-iface
rework I/O stream abstractions
Diffstat (limited to 'lib/std/atomic/queue.zig')
| -rw-r--r-- | lib/std/atomic/queue.zig | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/lib/std/atomic/queue.zig b/lib/std/atomic/queue.zig index 1969587f30..1a0f39587e 100644 --- a/lib/std/atomic/queue.zig +++ b/lib/std/atomic/queue.zig @@ -104,21 +104,17 @@ pub fn Queue(comptime T: type) type { } pub fn dump(self: *Self) void { - var stderr_file = std.io.getStdErr() catch return; - const stderr = &stderr_file.outStream().stream; - const Error = @typeInfo(@TypeOf(stderr)).Pointer.child.Error; - - self.dumpToStream(Error, stderr) catch return; + self.dumpToStream(std.io.getStdErr().outStream()) catch return; } - pub fn dumpToStream(self: *Self, comptime Error: type, stream: *std.io.OutStream(Error)) Error!void { + pub fn dumpToStream(self: *Self, stream: var) !void { const S = struct { fn dumpRecursive( - s: *std.io.OutStream(Error), + s: var, optional_node: ?*Node, indent: usize, comptime depth: comptime_int, - ) Error!void { + ) !void { try s.writeByteNTimes(' ', indent); if (optional_node) |node| { try s.print("0x{x}={}\n", .{ @ptrToInt(node), node.data }); @@ -326,17 +322,16 @@ test "std.atomic.Queue single-threaded" { test "std.atomic.Queue dump" { const mem = std.mem; - const SliceOutStream = std.io.SliceOutStream; var buffer: [1024]u8 = undefined; var expected_buffer: [1024]u8 = undefined; - var sos = SliceOutStream.init(buffer[0..]); + var fbs = std.io.fixedBufferStream(&buffer); var queue = Queue(i32).init(); // Test empty stream - sos.reset(); - try queue.dumpToStream(SliceOutStream.Error, &sos.stream); - expect(mem.eql(u8, buffer[0..sos.pos], + fbs.reset(); + try queue.dumpToStream(fbs.outStream()); + expect(mem.eql(u8, buffer[0..fbs.pos], \\head: (null) \\tail: (null) \\ @@ -350,8 +345,8 @@ test "std.atomic.Queue dump" { }; queue.put(&node_0); - sos.reset(); - try queue.dumpToStream(SliceOutStream.Error, &sos.stream); + fbs.reset(); + try queue.dumpToStream(fbs.outStream()); var expected = try std.fmt.bufPrint(expected_buffer[0..], \\head: 0x{x}=1 @@ -360,7 +355,7 @@ test "std.atomic.Queue dump" { \\ (null) \\ , .{ @ptrToInt(queue.head), @ptrToInt(queue.tail) }); - expect(mem.eql(u8, buffer[0..sos.pos], expected)); + expect(mem.eql(u8, buffer[0..fbs.pos], expected)); // Test a stream with two elements var node_1 = Queue(i32).Node{ @@ -370,8 +365,8 @@ test "std.atomic.Queue dump" { }; queue.put(&node_1); - sos.reset(); - try queue.dumpToStream(SliceOutStream.Error, &sos.stream); + fbs.reset(); + try queue.dumpToStream(fbs.outStream()); expected = try std.fmt.bufPrint(expected_buffer[0..], \\head: 0x{x}=1 @@ -381,5 +376,5 @@ test "std.atomic.Queue dump" { \\ (null) \\ , .{ @ptrToInt(queue.head), @ptrToInt(queue.head.?.next), @ptrToInt(queue.tail) }); - expect(mem.eql(u8, buffer[0..sos.pos], expected)); + expect(mem.eql(u8, buffer[0..fbs.pos], expected)); } |
