authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-02-18 16:35:01 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-02-18 16:35:01 -08:00
log5ed385991441fbf60d59f67fc374e00adfc4a433
tree7b3511056a240339c877b2671efef5cef04cb7b4
parentc42e6387d1ecb15b82fce5c8c08728e93a7b932c

use writeNTimes


2 files changed, 11 insertions(+), 6 deletions(-)

json.zig+6-6
......@@ -432,9 +432,9 @@ pub const Document = struct {
432432 return std.fmt.format(writer, "{}", .{this.root});
433433 }
434434
435 pub fn stringify(this: *const Document, writer: anytype, space: Space, indent: u8) @TypeOf(writer).Error!void {
435 pub fn stringify(this: *const Document, writer: anytype, space: Space, indent: u8) Instance(@TypeOf(writer)).WriteError!void {
436436 const fill = space.fill();
437 for (0..indent) |_| try writer.writeAll(fill);
437 try writer.writeNTimes(fill, indent);
438438 return @errorCast(this.root.stringify(writer, space, indent));
439439 }
440440};
......@@ -582,11 +582,11 @@ pub const ArrayIndex = enum(u32) {
582582 for (items, 0..) |item, i| {
583583 if (i > 0) try writer.writeAll(",");
584584 if (fill.len > 0) try writer.writeAll("\n");
585 for (0..indent + 1) |_| try writer.writeAll(fill);
585 try writer.writeNTimes(fill, indent + 1);
586586 try item.stringify(writer, space, indent + 1);
587587 }
588588 if (fill.len > 0) try writer.writeAll("\n");
589 for (0..indent) |_| try writer.writeAll(fill);
589 try writer.writeNTimes(fill, indent);
590590 try writer.writeAll("]");
591591 }
592592
......@@ -623,13 +623,13 @@ pub const ObjectIndex = enum(u32) {
623623 for (keys, values, 0..) |k, v, i| {
624624 if (i > 0) try writer.writeAll(",");
625625 if (fill.len > 0) try writer.writeAll("\n");
626 for (0..indent + 1) |_| try writer.writeAll(fill);
626 try writer.writeNTimes(fill, indent + 1);
627627 try k.stringify(writer);
628628 try writer.writeAll(":");
629629 try v.stringify(writer, space, indent + 1);
630630 }
631631 if (fill.len > 0) try writer.writeAll("\n");
632 for (0..indent) |_| try writer.writeAll(fill);
632 try writer.writeNTimes(fill, indent);
633633 try writer.writeAll("}");
634634 }
635635
test.zig+5
......@@ -580,6 +580,11 @@ fn expectCanonical(buffer: []const u8) !void {
580580 doc.acquire();
581581 defer doc.release();
582582 try std.testing.expectFmt(buffer, "{}", .{doc});
583
584 var buf: [4096]u8 = undefined;
585 var out: nio.FixedBufferStream([]u8) = .init(&buf);
586 try doc.stringify(&out, .{ .count = 0 }, 0);
587 try std.testing.expectEqualStrings(buffer, out.buffer[0..out.pos]);
583588}
584589
585590// zig fmt: off