From 6fa143355f256e354a2df67a42e3e9208d1a71e9 Mon Sep 17 00:00:00 2001 From: vegecode Date: Tue, 4 Feb 2020 12:16:20 -0600 Subject: [PATCH 1/2] Add formatted printing directly into std.Buffer --- lib/std/buffer.zig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/std/buffer.zig b/lib/std/buffer.zig index 077b2b615fdace5b457e7e7202adaee9b9cdc8f7..6bf03472f62de319865edbececa4bd57e1118373 100644 --- a/lib/std/buffer.zig +++ b/lib/std/buffer.zig @@ -147,6 +147,16 @@ pub const Buffer = struct { try self.resize(m.len); mem.copy(u8, self.list.toSlice(), m); } + + pub fn print(self: *Buffer, comptime fmt: []const u8, args: var) !void { + try std.fmt.format( + self, + @typeInfo(@TypeOf(Buffer.append)).Fn.return_type.?.ErrorSet, + Buffer.append, + fmt, + args, + ); + } }; test "simple Buffer" { @@ -190,3 +200,11 @@ test "Buffer.initCapacity" { testing.expect(buf.capacity() == old_cap); testing.expect(mem.eql(u8, buf.toSliceConst(), "hello")); } + +test "Buffer.print" { + var buf = try Buffer.init(testing.allocator, ""); + defer buf.deinit(); + + try buf.print("Hello {} the {}", .{ 2, "world" }); + testing.expect(buf.eql("Hello 2 the world")); +} -- 2.54.0 From 7cfe854359bcacb038654903fbe8a17c4144c3d5 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 24 Feb 2020 22:34:06 -0500 Subject: [PATCH 2/2] clean up std.Buffer.print --- lib/std/buffer.zig | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/std/buffer.zig b/lib/std/buffer.zig index 6bf03472f62de319865edbececa4bd57e1118373..f808af14852d39ad7e42b72171c0f0d5d5705d17 100644 --- a/lib/std/buffer.zig +++ b/lib/std/buffer.zig @@ -149,13 +149,7 @@ pub const Buffer = struct { } pub fn print(self: *Buffer, comptime fmt: []const u8, args: var) !void { - try std.fmt.format( - self, - @typeInfo(@TypeOf(Buffer.append)).Fn.return_type.?.ErrorSet, - Buffer.append, - fmt, - args, - ); + return std.fmt.format(self, error{OutOfMemory}, Buffer.append, fmt, args); } }; -- 2.54.0