Function print [src]

An alternative to calling write that formats a value with std.fmt. This function does the usual punctuation and indentation formatting assuming the resulting formatted string represents a single complete value; e.g. "1", "[]", "[1,2]", not "1,2". This function may be useful for doing your own number formatting.

Prototype

pub fn print(self: *Stringify, comptime fmt: []const u8, args: anytype) Error!void

Parameters

self: *Stringifyfmt: []const u8

Possible Errors

WriteFailed Error

See the Writer implementation for detailed diagnostics.

Example

test print { var out_buf: [1024]u8 = undefined; var out: Writer = .fixed(&out_buf); var w: Stringify = .{ .writer = &out, .options = .{ .whitespace = .indent_2 } }; try w.beginObject(); try w.objectField("a"); try w.print("[ ]", .{}); try w.objectField("b"); try w.beginArray(); try w.print("[{s}] ", .{"[]"}); try w.print(" {}", .{12345}); try w.endArray(); try w.endObject(); const expected = \\{ \\ "a": [ ], \\ "b": [ \\ [[]] , \\ 12345 \\ ] \\} ; try std.testing.expectEqualStrings(expected, out.buffered()); }

Source

pub fn print(self: *Stringify, comptime fmt: []const u8, args: anytype) Error!void { if (build_mode_has_safety) assert(self.raw_streaming_mode == .none); try self.valueStart(); try self.writer.print(fmt, args); self.valueDone(); }