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
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();
}