authorgravatar for justin.b.alexander1@gmail.comvegecode <justin.b.alexander1@gmail.com> 2020-02-04 12:16:20-06:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-24 22:30:23-05:00
log6fa143355f256e354a2df67a42e3e9208d1a71e9
tree18e470f775ca42d068aed730131a32e40555607e
parent5503f3f7c427d648c3e9a2280cc7a2ba102379d6
signaturelock-open Commit is signed but in an unrecognized format.

Add formatted printing directly into std.Buffer


1 files changed, 18 insertions(+), 0 deletions(-)

lib/std/buffer.zig+18
......@@ -147,6 +147,16 @@ pub const Buffer = struct {
147147 try self.resize(m.len);
148148 mem.copy(u8, self.list.toSlice(), m);
149149 }
150
151 pub fn print(self: *Buffer, comptime fmt: []const u8, args: var) !void {
152 try std.fmt.format(
153 self,
154 @typeInfo(@TypeOf(Buffer.append)).Fn.return_type.?.ErrorSet,
155 Buffer.append,
156 fmt,
157 args,
158 );
159 }
150160};
151161
152162test "simple Buffer" {
......@@ -190,3 +200,11 @@ test "Buffer.initCapacity" {
190200 testing.expect(buf.capacity() == old_cap);
191201 testing.expect(mem.eql(u8, buf.toSliceConst(), "hello"));
192202}
203
204test "Buffer.print" {
205 var buf = try Buffer.init(testing.allocator, "");
206 defer buf.deinit();
207
208 try buf.print("Hello {} the {}", .{ 2, "world" });
209 testing.expect(buf.eql("Hello 2 the world"));
210}